如何为表行(tr)特定和表数据(td)创建单击事件。
例如,类似这样的东西
$("table tr").on("click", function(){
// do something with tr without td click handler
});
$("table tr td").on("click", function(){
// do something with td without tr click handler
});
提前致谢
答案 0 :(得分:2)
要将点击事件绑定到td
元素,以便它不会触发父tr
点击,您需要阻止事件冒泡DOM树。您应该调用事件对象的stopPropagation
方法:
$("table tr td").on("click", function(e) {
e.stopPropagation();
// do something with td without tr click handler
});
使用tr执行某些操作而不使用td单击处理程序
如果在捕获阶段绑定click事件,也可以这样做(阅读event order)。为此,您需要在事件传播的冒泡阶段使用HTMLElement's addEventListener
方法,jQuery $.fn.on
方法绑定事件。但请注意,如果你仔细想想,这几乎没有实际意义。很可能您希望在某些特定的表格单元格点击时阻止事件在td-> tr方向冒泡。