說我有以下HTML:檢測背景點擊jQuery的
<div>
<span>span text</span> div text <span>some more text</span>
</div>
我想讓它這樣,當我點擊跨度,它會引發一些事件(例如,使文本加粗),這是易:
$('span').click(...)
但現在我當我從元素點擊即可,我想另一個事件來觸發(例如,使文本正常體重)。我需要以某種方式檢測不在span元素內部的點擊。這與blur()事件非常相似,但是對於非INPUT元素。我不介意是否只在DIV元素內檢測到該點擊,而不是該頁面的整個BODY,順便說一句。
我試圖讓一個事件在非SPAN元素來觸發下列要求:
$('div').click(...) // triggers in the span element
$('div').not('span').click(...) // still triggers in the span element
$('div').add('span').click(...) // triggers first from span, then div
另一種解決辦法是閱讀活動的目標click事件裏面。下面是實現這種方式的一個例子:
$('div').click(function(e) {
if (e.target.nodeName != "span")
...
});
我想知道是否有像模糊的更優雅的解決方案()雖然。
您是否意識到這會將單擊事件處理程序分配給*噸*元素?遠非理想。 – 2010-01-13 21:25:55
他說他想要的只是跨度 – helloandre 2010-01-13 21:33:16
但是之後他應該利用事件冒泡來達到性能的原因。 – DanMan 2010-12-21 18:10:34