2014-04-23 9 views
10

abfeuert Ich habe den folgenden Code hier:Programmatically Ändern Checkbox nicht Änderungsereignis

$('input[type="checkbox"][id="gridlines"]').change(function() { 
    alert('hello world'); 
}); 

$('#gridlines').prop('checked', true); 

Wenn ich meine Seite laden, wird das Kontrollkästchen aktiviert, aber die „Hallo Welt“ erhält nicht

aufgefordert Wenn ich jedoch manuell auf das Kontrollkästchen klicke, wird "Hallo Welt" gefragt

Was gibt?

Antwort

13

Sie müssen change() anrufen oder trigger() verwenden, um das change-Ereignis zu aktivieren, wenn die Werte durch Code geändert werden.

Mit .change()

$('#gridlines').prop('checked', true).change(); 

.trigger()

$('#gridlines').prop('checked', true).trigger("change"); 
5

verwenden, das ist, wie es ist wohl, arbeiten nur Interaktion mit dem Benutzer unterstützen das Änderungsereignis auslösen

Sie es auslösen kann manuell unter Verwendung von .change()/.trigger('change');

$('#gridlines').prop('checked', true).change(); 

change

Die Veranstaltung Änderung für <input> abgefeuert wird, <select> und <textarea> Elemente, wenn eine Änderung an den Wert des Elements durch die Benutzer verpflichtet. Im Gegensatz zum Eingabeereignis wird das Änderungsereignis nicht notwendigerweise für jede Änderung an einem Elementwert ausgelöst ( ).

Verwandte Themen