這應該解決的問題是Chrome和火狐瀏覽器:
$('tr.parent')
.css("cursor", "pointer")
.click(function (e) {
if ($(e.target).is('select') || $(e.target).is('option')) {
//
} else {
$(this).css('background-color', 'red');
}
});
$('tr[class^=child-]').find('td > div, td').hide();
JSFiddle test
編輯:如果你不需要做任何簡化版點擊選擇時的動作。
$('tr.parent')
.css("cursor", "pointer")
.click(function (e) {
if (!($(e.target).is('select') || $(e.target).is('option'))) {
$(this).css('background-color', 'red');
}
});
$('tr[class^=child-]').find('td > div, td').hide();
JSFiddle test
快速的jsfiddle似乎顯示它作爲工作,但我很好奇。你知道爲什麼'是'會工作,而'不是'不會呢?另外,既然我們對'select'沒有做任何事情,也許你可以使測試適應'$(e.target).is(':not(select)')'並且放棄'else',那麼你是什麼認爲? (這應該工作太依據我的JSFiddle) – Chop
理解了我的第一個問題的答案:'is'是一個測試,'不'是一個過濾器... – Chop
@Chop正確:-) ......另外 - 這兩個結果都是TRUTHY的值 - 所以即使你做了:'$(「body:input」)''你會得到'[]'這是一個空數組,但它是TRUTHY所以if($(「body:input」 ))'仍然會像真的 –