Was ich hier tun, ist, dass ich dynamisch ein Drop-down-und binden das click
Ereignis an die <option>
im <select>
Click-Ereignis nicht dynamisch eingefügte Element in Chrom arbeiten (jQuery)
var $select = $('<select></select>'),
$option1 = $('<option>a</option>'),
$option2 = $('<option>b</option>');
$option1.val(1);
$option2.val(2);
$(document.body).on('click','select option',function(){
console.log("click-option works");
});
$select.append($option1);
$select.append($option2);
$(document.body).append($select);
erstellen Wie ich gelesen here, Da ich Inhalte dynamisch hinzufüge, habe ich die Ereignisbehandlung an das oberste Element im DOM delegiert.
Jetzt ist mein Problem, das funktioniert nicht in Chrome wie erwartet. Im Feuerfuchs scheint es gut zu funktionieren.
Ich habe auch this Link gelesen und die other eins, aber ohne Erfolg.
Interessanter, wenn ich dies tun, an der Stelle des 'select option'
Selektor
$(document.body).on('click','select',function(){
console.log("click-option works");
});
Der Ausgang angemeldet ist, aber das ist definitiv nicht das, was ich im Sinn hatte. Die Ausgabe wird protokolliert, wenn ich das Dropdown-Menü selbst auswähle, ganz zu schweigen von den Optionen im Drop-down-Menü. Als temporäre Arbeit um verwende ich change
Veranstaltung in folgenden Weise:
$(document.body).on('change','select',function(event){
console.log("change works");
console.log(event);
});
Dies scheint den Trick zu tun, ich möchte aber wissen, warum es nicht im ursprünglichen Fall und alle Umgehungen möglichst Arbeits .
Hier ist ein fiddle für das, was ich bisher getan habe.
UPDATE: Ich habe auch this link ausgecheckt. Wie auch immer, das ist nur für reines Javascript, ich wollte wissen, warum es in meinem Fall funktioniert. Genauer gesagt, in der delegierten Event-Handler, wo wir den Selektor angeben, warum schlägt es bei 'select option'
und arbeiten bei 'select'
in Chrome?
Mögliches Duplikat von [onclick on option tag funktioniert nicht auf IE und chr ome] (http://stackoverflow.com/questions/9972280/onclick-on-option-tag-not-working-on-ie-and-chrome) –
Ja, ich hatte das überprüft, aber das ist kein reines Javascript-Sache. Ich dachte, jQuery wurde entworfen, um solche Sachen zu glätten –
ja die Ereignisse auf der niedrigsten Ebene sind reine js, aber jeder Browser behandelt diese Ereignisse anders. Webkit (Chrome) scheint dieses andauernde Problem zu haben –