我使用事件委托在点击时显示一个包含表格每个TR的详细信息的弹出窗口。 但是,TR有一些实际的链接,如果点击链接,我需要避免显示弹出窗口。 (因此仅当用户点击TR的非链接部分时才显示弹出窗口。 谁能指引我走向正确的方向? 感谢。
答案 0 :(得分:2)
您需要取消表格中所有链接的传播:
$('table').delegate('td', 'click', function (e) {
// do some code
});
$('table').delegate('a', 'click', function (e) {
e.stopPropagation();
});
编辑: 在一个代表中,像这样(没有经过测试!):
$('table').delegate('td', 'click', function (e) {
if (e.target.nodeName.toLowerCase() == 'a') {
e.stopPropagation();
}
// do some code
});
答案 1 :(得分:0)
你可以使用方法链来减少代码,但是归功于@Shlomi Komemi
$('table').delegate('td', 'click', function (e) {
// do some code
}).delegate('a', 'click', function (e) {
e.stopPropagation();
});