【发布时间】:2013-02-14 02:48:59
【问题描述】:
<tr>
<td>
<a></a>
</td>
</tr>
好的,<tr> 节点有事件监听器$('tr').click(handler1)。但我不希望 <a> 节点具有与 has 相同的行为。
有没有 jQuery 可以做到这一点?
【问题讨论】:
标签: jquery dom javascript-events
<tr>
<td>
<a></a>
</td>
</tr>
好的,<tr> 节点有事件监听器$('tr').click(handler1)。但我不希望 <a> 节点具有与 has 相同的行为。
有没有 jQuery 可以做到这一点?
【问题讨论】:
标签: jquery dom javascript-events
也为 a 添加一个事件处理程序并防止默认
$(function(){
$("tr a").click(function(e){
e.preventDefault();
});
});
如果您希望链接继续执行默认操作但不希望事件冒泡到 tr,请将其更改为 e.stopPropagation(); 而不是 e.preventDefault();
【讨论】:
你可以看看这样的东西作为使用 jQuery 的替代方法
document.getElementById('x').addEventListener('click', function(e){
if(e.target.tagName == 'A'){
alert('Clicked A')
}else{
alert('clicked tr')
}
}, false);
演示:fiddle
使用 jQuery:
$('tr').on('click', function(e){
if($(e.target).is('a')){
alert('clicked a')
} else {
alert('clicked tr')
}
})
演示:Fiddle
【讨论】:
$('tr').click(function(e){
e.preventDefault();
});
【讨论】:
$('tr').click(function(e){
if($(e.target).is('#youranchorelementid')){ //you can use class also if you have many elements
e.preventDefault();
}
});
【讨论】: