Gor*_*don 1 javascript jquery javascript-events
这是一个关于用jQuery绑定点击事件的问题,我正试图弄清楚.
假设我有一个块元素,我绑定了一个点击,里面有一个段落标记.
<div id="testClick" style="width:200px; height:100px'>
<p>test click</p>
</div>
Run Code Online (Sandbox Code Playgroud)
然后我将一个点击绑定到div:
$('#testClick').bind('click', function(e){
//with parent div (via e.target), do something
});
Run Code Online (Sandbox Code Playgroud)
现在,如果我点击p标签内的文本,e.target = p元素,如果我点击div(周围,而不是文本)e.target = div元素.所以e.target =点击的对象 - 即事件也绑定到指定元素的任何子节点.
这是可以预料的,但我需要对父div进行操作.并且使用e.target不是获取div引用的可靠方法,因为依赖于div中的位置,e.target返回不同的元素.如果我使用e.target.parent来获取对div的引用,则在文本周围的div中发生单击时会失败.
有没有简单的方法让e.target始终只返回点击最初绑定的确切元素?
(例如,在actionScript中有一个属性"mouseChildren",可以防止事件在绑定元素的子节点上触发)
(考虑以上所有伪代码)
this 将引用处理程序绑定到的元素.
$('#testClick').bind('click', function(e){
alert( this.id );
});
Run Code Online (Sandbox Code Playgroud)
演示: http ://jsfiddle.net/yX499/
发生的事情是,事件从最直接点击的元素一直到文档根目录.
如果它遇到一个元素,并且有一个处理程序绑定了发生的事件类型,它会调用该处理程序.
e.target将始终参照该深深嵌套的元件,但this将参考元件到该处理程序被束缚,因此,如果该事件发现2个元素与结合的方式到根目录的相应处理程序时,e.target不会在2个处理程序改变,但this会根据绑定元素不同.
| 归档时间: |
|
| 查看次数: |
626 次 |
| 最近记录: |