0

我在文档上定义了一个单击函数,单击时我想知道目标是否包含一个“下拉”类,该函数应该返回。所以这在 Firefox 中运行良好:

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

    //Other work here;
});

但不知何故 IE 显示e.targetnull. 在阅读了一些 IE 没有target点击事件但srcElement要在两种浏览器中工作的地方之后,我需要将其更改为:

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

但是我需要获取类属性,有人知道如何获取srcElementIE 中“不使用 JQUERY”的类吗?

4

3 回答 3

4

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

你应该可以更换

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

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

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

就此而言,如果我了解您在做什么,也许您应该重组整个事件处理程序(除非您出于效率原因这样做,有时人们会捕获更大的异常然后弄清楚点击了什么)

$('.dropdown').each(function () {
    //Do some action
});
于 2012-04-11T14:26:28.227 回答
1

jQuery来拯救:

$(document).click(function(e){  
   if($(this).hasClass("dropdown"))
      return    
    //Other work here;
})
于 2012-04-11T14:26:54.170 回答
0
$target = $(e.target);

if($target.hasClass("dropdown"))
    return;
于 2012-04-11T14:27:51.480 回答