0

ドキュメントで定義されたクリック関数があり、クリックすると、関数が返すクラス「ドロップダウン」がターゲットに含まれているかどうかを知りたいです。したがって、これは Firefox で正常に動作するものです。

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

    //Other work here;
});

しかし、どういうわけかIEはe.targetとして表示されnullます。targetその IEにクリック イベントがない場所を読んだ後srcElement、両方のブラウザで動作するようにするには、これを次のように変更する必要があります。

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

srcElementしかし、クラス属性を取得する必要があります.IEの「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 に答える