<tr>
<td>
<a></a>
</td>
</tr>
好的是<tr>
节点有事件监听器$('tr').click(handler1)
。但我不希望<a>
节点具有与has相同的行为。
无论如何我可以在没有jQuery的情况下完成它吗?
答案 0 :(得分:2)
同时向a添加事件处理程序并防止默认
$(function(){
$("tr a").click(function(e){
e.preventDefault();
});
});
如果您希望该链接继续执行默认操作,但您不希望该事件冒泡到tr,则将其更改为e.stopPropagation();
而不是e.preventDefault();
答案 1 :(得分:2)
您可以将此类内容视为使用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
答案 2 :(得分:1)
$('tr').click(function(e){
e.preventDefault();
});
答案 3 :(得分:1)
$('tr').click(function(e){
if($(e.target).is('#youranchorelementid')){ //you can use class also if you have many elements
e.preventDefault();
}
});