Ich erstelle dynamisch eine neue div
(mit einer "Textbox" -Klasse und ID) und einige andere Elemente darin, und später in meinem Code binde ich das div
an das Click-Ereignis und zeigen das Element angeklickt, etwa so:jquery e.target.hasClass funktioniert nicht
$('#textbox_'+i).bind('click', function(event){
alert(event.target.className);
}
das ist in Ordnung, und es wird mir textbox
als einer der Klassen angezeigt geben. Aber event.target.hasClass()
scheint nicht zu funktionieren. Also, wenn ich folgendes tun, passiert nichts:
$('#textbox_'+i).bind('click', function(event){
if(event.target.hasClass('textbox')) { alert('got it!'); }
}
Ich versuchte es ein paar verschiedene Möglichkeiten, und es scheint mir, dass event.target.hasClass()
einfach nicht funktioniert. Gibt es eine andere Möglichkeit, mit Ereignissen umzugehen oder mache ich etwas falsch?
Wow! Okay, das war einfach! Vielleicht ist das ein wenig off topic, aber was ist der Unterschied zwischen $ (event.target) und event.target? Ersteres funktioniert mit hasClass, aber nicht, wenn ich versuche, .className zu alarmieren. – user961627
hasClass ist eine jQuery-Funktion, .ClassName ist plain Javascript – anderssonola
Die erste ist in jQuery verpackt, also ist es ein jQuery-Objekt und kann mit jQuery-Methoden verwendet werden. Die zweite ist ein einfaches JavaScript-Objekt, das in den Funktionen 'event' zurückgegeben wird und mit einfachen JavaScript-Methoden, aber nicht mit jQuery-Methoden verwendet werden kann. – adeneo