我有這個(簡化):jQuery 1.3.2 - 防止在較低元素上觸發事件的最佳方法?
$(li).click(function{alert("test");});
<li>
<input>
</li>
什麼是事件綁定到li
但是當用戶點擊input
元素不火的最佳方式?
我有這個(簡化):jQuery 1.3.2 - 防止在較低元素上觸發事件的最佳方法?
$(li).click(function{alert("test");});
<li>
<input>
</li>
什麼是事件綁定到li
但是當用戶點擊input
元素不火的最佳方式?
嘗試在Event對象上使用stopPropagation方法。
$('input').click(function(event) {
event.stopPropagation();
});
您還可以使用選擇的合成目標的li
具體子項(或直接子):
$('li > input, li strong, li span').click(...);
一個解決方案可能涉及使用event.target
。
在事件處理程序,使用
if($(event.target).is('input'))
return;
我認爲你必須手動進行過濾。
$(li).click(function(e) {
if ($(e.target).is("input")) {
alert("Test");
}
});
+1唯一的好回答這個問題! – 2010-04-14 20:41:51
我知道我的解決方案很糟糕;) – 2010-04-15 00:41:11