点击锚点上有一个孩子

时间:2017-09-22 09:36:35

标签: javascript jquery html anchor

您好很快我想将卡片作为一个块来点击卡片中的任何位置时返回锚点的href。
现在问题是,当我点击卡片的任何位置时,它会返回我点击的项目 并且代码显示问题。

抱歉,我的语言很糟糕 谢谢你的帮助

$(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>

2 个答案:

答案 0 :(得分:1)

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

$('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', ...)

答案 1 :(得分:0)

当你点击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>

相关问题