2012-04-11 15 views
0

私はドキュメント上でクリック関数を定義しています。クリックすると、ターゲットにクラスドロップダウンが含まれているかどうかを知りたいと思います。Internet ExplorerのClickイベントのdivからクラスを取得

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

    //Other work here; 
}); 

しかし、どういうわけか、IEはnullとしてe.targetを示しています。これはFirefoxで正常に動作するものです。いくつかは、IEがクリックイベントのためtargetが、srcElementを持っていない、と私はこれを変更する必要があり、両方のブラウザで動作することをどこで読んだ後:

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

しかし、私はクラス属性を取得する必要があり、いくつかのいずれかはどのように知っています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

+0

現在の回答が1つも当てはまらない場合は、より具体的な質問をしてください。あなたが3つの答えがあると、誰もあなたの質問をクリックしないでしょう。なぜあなたはこれのためにJQueryを使いたくないのですか? – Jrud

+0

jQueryを使用せずにこれが可能かどうか尋ねています。なぜなら、IEでこれと同等のものが何であるか知る必要がある理由はFirefoxmでこれを行うことができるからです。 – ShayanK

1

のjQuery:

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

if($target.hasClass("dropdown")) 
    return; 
関連する問題