2012-04-11 3 views
0

Ich habe eine Klick-Funktion für das Dokument definiert und wenn geklickt möchte ich wissen, ob das Ziel enthält eine Klasse 'Dropdown' die Funktion sollte zurückkehren. So ist das, was in Firefox funktioniert gut:Holen Sie Klasse von einem div in Click-Ereignis in Internet Explorer

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

    //Other work here; 
}); 

Aber irgendwie IE zeigt e.target als null. Nach der Lektüre, wo einige, dass der IE nicht target für Click-Ereignisse hat aber srcElement und ich in beiden Browsern arbeiten muß, dies ändern:

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

Aber ich, das Klassenattribut bekommen muss sich jemand wissen, wie um die Klasse der srcElement in IE "ohne JQUERY" zu bekommen?

Antwort

4

Warum nicht die JQuery-API-Funktion hasClass verwenden?

Sie sollten in der Lage sein

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

mit

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

~~~~~~~~~~~~ bearbeiten zu ersetzen ~~~~~~~~~~

Wenn ich verstehe, was Sie tun, sollten Sie vielleicht Ihren gesamten Event-Handler restrukturieren (es sei denn, Sie tun es aus Effizienzgründen manchmal Leute eine größere Ausnahme dann herausfinden, was geklickt wurde)

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

Eigentlich weiß ich, wie kann es mit JQuery getan werden, ich möchte nicht JQuery verwenden, das ist, warum ich diese Frage gestellt. – ShayanK

+0

Sie sollten die Frage dann genauer stellen, wenn keine der aktuellen Antworten zutrifft. Wahrscheinlich wird niemand mehr auf Ihre Frage klicken, wenn Sie sehen, dass es 3 Antworten gibt, 1 mit Up-Stimmen. Darf ich fragen, warum Sie JQuery nicht dafür verwenden wollen? – Jrud

+0

Ich frage, ob dies möglich ist, ohne jQuery zu verwenden, und der Grund dafür ist, dass ich dies mit Firefox machen könnte, weshalb ich wissen muss, was das Äquivalent in IE ist. – ShayanK

1

jQuery zur Rettung:

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

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