我設置了一個表格,每行都有一個複選框作爲行中的第一項(請考慮Gmail的收件箱)。該行的<tr>
有一個懸停和單擊事件處理程序綁定到它。使用事件使用jQuery修改元素
我想要發生的是,當用戶點擊複選框時,複選框將被選中,這就是全部。當用戶點擊該行的其他地方時,它應該做其他事情。我試圖通過查看傳遞的事件的event.target
來實現此目的,並查看是否是複選框。但是,就我目前的實現而言,當用戶點擊複選框時,什麼都不會發生,當他們點擊行中的其他任何地方時,它的行爲就如我所期望的那樣。
我對這個複選框做錯了什麼?
這裏是我的代碼:
$('.navTable > tbody > tr').hover(function() {
if (!$(this).children('td').hasClass('spacer') && !$(this).children('th').length > 0)
$(this).css({background : "#EFEFEF", border : "1px solid #CCC"});
},function() {
$(this).css({background : "", border : ""});
}).click(function(e) {
console.log(e);
if(e.target.attributes[0].nodeValue == "checkbox") {
// Check the checkbox
$("#"+e.target.id).attr('checked', 'checked');
} else {
// Do something else
}
return false;
});
感謝您的幫助,您可以提供。
嗯,這似乎是一個更好的解決方案。不過,我想知道爲什麼我的方法不起作用?編輯:其實,現在我已經嘗試過了,你的方法似乎也不工作。有什麼建議麼? –
適合我在我的jsFiddle。我做了一些編輯,因此請確保您嘗試最新版本。如果它不適合你,那麼請在你的問題中發佈你試過的代碼和HTML。如果您獲得實施的權利,這在概念上起作用。你可以在jsFiddle中看到它。 – jfriend00
謝謝你,這很好。 –