如果你在div元素上放了一个.click(),你在div中有一个输入元素..如果用户点击输入,你怎么能省略.click()?
div.click()只需在用户单击div内部但在输入元素外部时触发
- <div style="width:400px; height:200px">
- <input type="text" style="width:50px" />
- </div>
解决方法
你有两个选择:
将click事件处理程序附加到input元素,并通过调用event.stopPropagation()
[docs]来阻止事件冒泡:
- $('input').click(function(event) {
- event.stopPropagation();
- });
要么
检查附加到div的click事件处理程序中的event.target
[docs]是否目标是输入元素.就像是:
- if(event.target.nodeName !== 'INPUT') {
- // do something
- }