单击锚点时有 child

on click anchor has a child

你好
不久我想把卡片做成一个块到return当点击卡片中的任何地方时锚点的href。
现在的问题是,当我点击卡片的任何地方时,它 return 我点击的项目。
代码显示了问题。

对不起,我的语言不好。
感谢帮助

$(document).bind('click', function(e) {
  var ele = $(e.target);
  if (ele.hasClass('itemLink')) {
    // I want this part
    e.preventDefault();
    console.log(ele.attr('href'));
  } else {
    console.log(ele.attr('class'));
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="itemContainer" style="width: 200px;">
  <a class="itemLink" href="#">
    <div class="itemCard">
      <div class="itemHead">
        <img class="itemImage" src="image.png" style="width:200px; height:200px;">
        <h3 class="itemName">Item Name</h3>
      </div>
      <div class="itemDetails">
        <p class="itemDesc">item detail descriptins</p>
        <p class="itemDesc">item detail descriptins</p>
        <p class="itemDesc">item detail descriptins</p>
      </div>
    </div>
  </a>
</div>

将您的事件处理程序绑定到定位点,而不是文档。

$('a.itemLink').click(function(e) {
  e.preventDefault();
  console.log($(this).attr('href'));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="itemContainer" style="width: 200px;">
  <a class="itemLink" href="#">
    <div class="itemCard">
      <div class="itemHead">
        <img class="itemImage" src="image.png" style="width:200px; height:200px;">
        <h3 class="itemName">Item Name</h3>
      </div>
      <div class="itemDetails">
        <p class="itemDesc">item detail descriptins</p>
        <p class="itemDesc">item detail descriptins</p>
        <p class="itemDesc">item detail descriptins</p>
      </div>
    </div>
  </a>
</div>

如果锚是动态添加的,使用委托:

$(document).on('click', 'a.itemLink', ...)

当您点击 a 标签内的任意位置(包括其中一个子标签)时,听起来您想做点什么。这应该有效:

$(document).bind('click', function(e) {
  var ele = $(e.target).closest('a.itemLink');
  if (ele.length) {
    // the click was inside your anchor
    e.preventDefault();
    console.log(ele.attr('href'));
  } else {
    // the click was not in your anchor
    console.log('clicked not in anchor');
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="itemContainer" style="width: 200px;">
  <a class="itemLink" href="#">
    <div class="itemCard">
      <div class="itemHead">
        <img class="itemImage" src="image.png" style="width:200px; height:200px;">
        <h3 class="itemName">Item Name</h3>
      </div>
      <div class="itemDetails">
        <p class="itemDesc">item detail descriptins</p>
        <p class="itemDesc">item detail descriptins</p>
        <p class="itemDesc">item detail descriptins</p>
      </div>
    </div>
  </a>
</div>