Jquery:有选择器吗?

时间:2009-09-08 07:47:37

标签: jquery

我有这个jQuery代码,我在<tr>上有一个点击事件。单击特定<td>时,不应触发此事件。我现在拥有的代码非常棒,但是现在我想再添加一个条件,<tr>上的事件在点击时不应该触发。

我想添加一个<span></span>,如果点击,会触发<tr>上的事件。

这是我的代码:

// Change background color on rows in new candidates list
$(".newCandidatesTableTr td:not(#testTD) span:not(#candidateID)").click(function() {
    $(this).parent().siblings().removeClass("diffColor");
    $(this).parent().toggleClass("diffColor", this.clicked);
});

这不起作用:

span:not(#candidateID)

我该怎么做?

2 个答案:

答案 0 :(得分:1)

我可能会选择可以点击的最顶层元素,然后过滤掉不应该点击的更具体元素的点击事件。

$('tr.newCandidatesTableTr > td').click(function (e) {
    // Get a jQuery-wrapped instance of the clicked element.
    var target = $(e.target);
    // Filter clicked element (due to bubbling, this is not necessarily the <td>
    // element.)
    if (target.is('td#testTD') || target.is('span#candidateID')) {
        // Pass on event.
        return true;
    }

    // Do stuff...
});

答案 1 :(得分:0)

试试这个:

// Change background color on rows in new candidates list
$(".newCandidatesTableTr td[id!=testTD] span[id!=candidateID]").click(function() {
    $(this).parent().siblings().removeClass("diffColor");
    $(this).parent().toggleClass("diffColor", this.clicked);
});