Ala*_*orm 27 javascript jquery events delegates dom
什么是jQuery喜欢和/或最佳实践方式来获取jQuery(或一般的浏览器javascript)中的事件的原始目标.
我一直在用这样的东西
$('body').bind('click', function(e){
//depending on the browser, either srcElement or
//originalTarget will be populated with the first
//element that intercepted the click before it bubbled up
var originalElement = e.srcElement;
if(!originalElement){originalElement=e.originalTarget;}
});
Run Code Online (Sandbox Code Playgroud)
哪个有效,但我对两线功能嗅探并不满意.有没有更好的办法?
小智 36
你可以在一行中完成,var originalElement = e.srcElement || e.originalTarget;但它不像JQuery一样;-)
[编辑:但根据http://docs.jquery.com/Events/jQuery.Event#event.target event.target可能会...]
Rus*_*Cam 23
我相信e.target就是你所需要的
$('body').bind('click', function(e){
e.target // the original target
e.target.id // the id of the original target
});
Run Code Online (Sandbox Code Playgroud)
如果你去jQuery in Action网站下载源代码,请看看
它涉及使用气泡和捕获处理程序进行事件传播
Jus*_*siR 20
使用event.originalTarget可能导致"权限被拒绝从非铬上下文访问属性'XYZ'" - 错误,所以我建议使用以下内容:
var target = event.target || event.srcElement || event.originalTarget;
Run Code Online (Sandbox Code Playgroud)
event.target 适用于Firefox,Opera,Google Chrome和Safari.
| 归档时间: |
|
| 查看次数: |
32595 次 |
| 最近记录: |