我有这个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)
我该怎么做?
答案 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);
});