2011-06-28 41 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; 
相关问题