单击锚点时有 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>
你好
不久我想把卡片做成一个块到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>