2012-04-11 52 views
0

我在文档上定义了一个单击函数,并且单击时我想知道目标是否包含类“下拉”,该函数应该返回。因此,这是在Firefox正常工作:从Internet Explorer中的Click事件中获取div中的类

$(document).click(function(e){ 
    if (e.target.classList.contains('dropdown')) 
     return; 

    //Other work here; 
}); 

但不知何故,IE显示e.targetnull。看完后有些在那里,IE浏览器没有target click事件,但srcElement,并且在这两个浏览器,我需要这个改变工作:

(event.target || event.srcElement).id //etc 

但我需要class属性,也有一个人知道如何在IE中“无需使用JQUERY”获得srcElement的类?

回答

4

为什么不使用JQuery API函数hasClass?

你应该能够取代

if(e.target.classList.contains('dropdown')) 

if($(this).hasClass('dropdown')) 

~~~~~~~~~~~~编辑~~~~~~~~~~

对于这个问题,如果我明白你在做什么,或许你应该重构你的整个事件处理程序(除非你出于效率原因这样做,有时人们会发现一个更大的异常,然后找出被点击的东西)

$('.dropdown').each(function() { 
    //Do some action 
}); 
+0

其实我知道它如何使用JQuery做,我不想使用jQuery,这就是为什么我问这个问题。 – ShayanK 2012-04-11 14:34:49

+0

如果当前的答案都不适用,最好重新提问,然后以更具体的方式提问。如果他们看到有3个答案,1个有高票,可能没有人会再次点击你的问题。请问为什么你不希望为此使用JQuery? – Jrud 2012-04-11 14:42:45

+0

我问,如果这是可能的,而不使用jQuery,原因是我可以做到这一点与FirefoxM这就是为什么我需要知道什么是在IE中的等价物。 – ShayanK 2012-04-12 11:11:51

1

jQuery的救援:

$(document).click(function(e){ 
    if($(this).hasClass("dropdown")) 
     return  
    //Other work here; 
}) 
0
$target = $(e.target); 

if($target.hasClass("dropdown")) 
    return;