
TR 有 <tr onclick='alert("row");'>
按钮有:
$("body").on('click',".b",function (e){
alert('button');
e.stopPropagation();
});
但是-尽管我写了 e.stopPropagation();它仍然会发出警报:“行,按钮”。
现在,我知道事件处理程序已附加到body并检查了选择器(单击从按钮开始并向上移动到正文,就像$.live使用做但反对document...)。
但是检查应该是针对button点击而不是针对TR点击。
似乎当我单击时,它会传播到"body"(因为我将事件处理程序附加到它),而当它到达正文时,它会激活对TR.
这里发生了什么?我怎样才能保留我的代码(附加到正文)并且仍然只有“按钮”的警报。
附言
我知道我可以简单地做:
$(".b").on('click',function (e){
alert('button');
e.stopPropagation();
});
但我想知道为什么我当前的(!)代码不起作用。