我正在尝试在一行中放置一个按钮。
当单击按钮时,我希望它执行A。
当单击该行时,我希望它执行B。
我试图停止传播,但有一次它正在起作用,但是我不知道自己没有做过什么,也无法设法使其再次起作用。
也许有更好的方法可以做到这一点。
我有一个小提琴http://jsfiddle.net/sebababi/YJ6eG/
function stopEvent(ev) {
ev.stopPropagation();
alert("event propagation halted.");
}
function stopPropagation(elem) {
elem = document.getElementById("row1");
elem.addEventListener("click", stopEvent, true);
}
我这样更改了您的代码:
<table id="ID_to_Stop">
<tr id="row1" onclick="alert('row 1 clicked');">
<td id="c12">this is row 1, if you click it, it should do something
<button id="btn1">and if you click me I should do something different</button>
</td>
</tr>
<tr id="row2" onclick="alert('row 2 clicked');">
<td id="c22">this is row 2
<button id="btn2">click me</button>
</td>
</tr>
</table>
和js部分:
var btn1 = document.getElementById("btn1");
var btn2 = document.getElementById("btn2");
btn1.addEventListener("click", function (ev) {
alert('btn 1 clicked');
ev.stopPropagation();
}, true);
btn2.addEventListener("click", function (ev) {
alert('btn 2 clicked');
ev.stopPropagation();
}, true);
这是您更新的DEMO。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句