当前位置:  开发笔记 > 编程语言 > 正文

获得原始目标的最佳方式

如何解决《获得原始目标的最佳方式》经验,为你挑选了3个好方法。

什么是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;}                         
});

哪个有效,但我对两线功能嗅探并不满意.有没有更好的办法?



1> 小智..:

你可以在一行中完成,var originalElement = e.srcElement || e.originalTarget;但它不像JQuery一样;-)

[编辑:但根据http://docs.jquery.com/Events/jQuery.Event#event.target event.target可能会...]


这不是jQuery应该抽象的东西吗?我对此感到很惊讶.

2> Russ Cam..:

我相信e.target就是你所需要的

$('body').bind('click', function(e){
                e.target // the original target
                e.target.id // the id of the original target                                               
});

如果你去jQuery in Action网站下载源代码,请看看

第4章 - dom.2.propagation.html

它涉及使用气泡和捕获处理程序进行事件传播



3> JussiR..:

使用event.originalTarget可能导致"权限被拒绝从非铬上下文访问属性'XYZ'" - 错误,所以我建议使用以下内容:

var target = event.target || event.srcElement || event.originalTarget;

event.target 适用于Firefox,Opera,Google Chrome和Safari.

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有