Ein seltsamer Fehler hat mir Kopfschmerzen in letzter Zeit, und ich habe es geschafft, es auf die einfachste Form möglich zu verdummen. Sehen Sie diese Geige: http://jsfiddle.net/PgAAb/jQuery ändert Ereignis zweimal ausgelöst, wenn Fokus auf ein anderes Steuerelement innerhalb der Änderung Callback
<input type="text" id="foo" placeholder="Change me!"><br>
<input type="text" id="bar" size="30" placeholder="Dummy control to switch focus">
$('#foo').change(function() {
console.log('Changed!');
$('#bar').focus();
});
Grundsätzlich, wenn Sie das erste Textfeld ändern und mit der Maus an anderer Stelle im Dokument klicken, wird die Änderung Ereignis ausgelöst wird, wie üblich. Wenn Sie jedoch den Wert ändern und die Eingabetaste drücken, um die Änderung auszulösen, wird das Ereignis zweimal ausgelöst.
Ich habe bemerkt, der Bug ist nur mit Chrome. Firefox löst das Ereignis nicht zweimal aus, und IE unterstützt nicht einmal die Eingabetaste, um eine Änderung an einer Eingabe auszulösen.
Ich denke, dass passiert, weil der Fokus innerhalb des Ereignisrückrufs wechselt. Gibt es einen Weg dazu?
Ich bemerkte dies wie ein Webkit Fehler global scheint seit Safari 7+ macht es. –