TR的jQuery委托,忽略链接

时间:2011-10-12 09:39:01

标签: jquery

我使用事件委托在点击时显示一个包含表格每个TR的详细信息的弹出窗口。 但是,TR有一些实际的链接,如果点击链接,我需要避免显示弹出窗口。 (因此仅当用户点击TR的非链接部分时才显示弹出窗口。 谁能指引我走向正确的方向? 感谢。

2 个答案:

答案 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();           
});