verwendet wird Ich weiß, dass ich für dynamische dom-Elemente jQuery.fn.on oder Delegate verwenden muss, aber wenn ich den Elementcontainer an ein anderes Elemente in 'verschieben' Das dom, der Klick funktioniert nicht mehr.Click-Ereignis ist nicht an dynamische Elemente gebunden, wenn appendTo()
Hier ist das die jsFiddle das Problem zu reproduzieren: http://jsfiddle.net/j0L7c51f/
derzeit folgende Methode bind ich verwende:
$('#commoditySelector').on('click', 'li.available', function() {
var cmID = $(this).attr('data-cmid');
$('#debug').html('commoditySelected: '+ cmID);
});
Wenn ich den Code Zeile aus kommentieren, wo ich das ul-Element bewegen Mit appendTo() funktioniert die click-Ereignisgrenze gut.
Perfekt MR. Rory –
@Rory Du hast vollkommen recht! Und Sie wissen auch warum, wenn ich die Maus schneller über die drei Hauptlistenpunkte bewege, dann öffnet und schließt sich die Dropdown-Liste mehrmals, als ob die Warteschlange nicht abgebrochen wird. Ich habe sowohl stop() als auch clearQueue() versucht – Giox
Yep - Sie müssen 'stop (true)' auf dem '# commodityList' Element sowohl auf" mouseenter "als auch auf" mouseleave "aufrufen: http://jsfiddle.net/ j0L7c51f/5 /. Ich machte auch ein paar Verbesserungen, um einige wiederholte Selektoren zu beseitigen. –