2011-06-28 61 views
5

如果你在一個div元素上加了一個.click(),並且你在div中有了一個輸入元素,那麼如果用戶點擊這個元素,你怎麼能省略.click()輸入?click - only on「direct」onclicks

的div.click()只需要觸發時,DIV中的用戶點擊,但輸入元素

<div style="width:400px; height:200px"> 
<input type="text" style="width:50px" /> 
</div> 

回答

7

之外你有兩個選擇:

附上click事件處理程序輸入元素,防止冒泡事件通過調用event.stopPropagation()[docs]

$('input').click(function(event) { 
    event.stopPropagation(); 
}); 

OR

檢查連接到divclick事件處理程序中的event.target[docs]目標是否爲input元素。喜歡的東西:

if(event.target.nodeName !== 'INPUT') { 
    // do something 
} 
+0

從來不知道'event.stopPropagation();'很不錯的,+ 1 = P –

0

您可以使用此:

if(event.toElement != this) 
    return; 
相關問題