Программно изменяющийся флажок не запускает событие изменения
У меня есть следующий код здесь:
$('input[type="checkbox"][id="gridlines"]').change(function () {
alert('hello world');
});
$('#gridlines').prop('checked', true);
Когда я загружаю свою страницу, флажок установлен, но "привет мир" не запрашивается
Однако, когда я нажимаю на флажок вручную, "привет мир" запрашивается
Что дает?
Ответы
Ответ 1
Вам нужно позвонить change() или использовать trigger(), чтобы изменить событие change
, когда значения изменены с помощью кода.
Используя .change()
$('#gridlines').prop('checked', true).change();
Используя .trigger()
$('#gridlines').prop('checked', true).trigger("change");
Ответ 2
Вот как это должно работать, только взаимодействие с пользователем - это поддержка запуска события изменения
Вы можете запустить его вручную, используя . change()/. trigger ( 'изменение');
$('#gridlines').prop('checked', true).change();
change
Событие изменения запускается для <input>
, <select>
и <textarea>
элементов, когда изменение значения элемента фиксируется пользователь. В отличие от события ввода событие изменения не обязательно для каждого изменения значения элемента.