Как узнать, когда флажок изменяется программно? - PullRequest
2 голосов
/ 05 декабря 2011

Рассмотрим следующий HTML:

<input type="checkbox" id="checkbox" checked />

Чуть позже флажок get не отмечен:

$('#checkbox').removeAttr('checked');

Как узнать (с помощью jQuery), когда меняется атрибут checked?Обработчик события .change() не срабатывает, когда я отмечаю / снимаю флажок программно, как описано выше.

Ответы [ 2 ]

4 голосов
/ 05 декабря 2011

События DOM не запускаются при программном запуске (правописание?). Однако события, прикрепленные с помощью jQuery, срабатывают, если вы запускаете их с помощью jQuery trigger.

образец кода

2 голосов
/ 05 декабря 2011

Как сказал liho1eye.Для этого вы можете использовать функцию триггера jquery.

Проверьте это JSFiddle.

HTML:

<input type="checkbox" id="checkbox" checked />

jQuery:

// Remove the first checked attr
$('#checkbox').prop('checked', false);

// Bind checkbox to click
$('#checkbox').bind('click', function() { // jQuery 1.7 you can use .on()
   alert('You clicked the checkbox! Naughty boy!');
});

// execute the event for the matched elements.
$('#checkbox').trigger('click');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...