jQuery - 如何找出复选框何时以编程方式更改?

时间:2011-12-04 20:54:08

标签: javascript jquery dom

考虑以下HTML:

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

稍后复选框get取消选中:

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

checked属性发生变化时,如何找出(使用jQuery)?当我像上面一样以编程方式选中/取消选中复选框时,.change()事件处理程序不会触发。

2 个答案:

答案 0 :(得分:4)

在以编程方式触发时,DOM事件不会触发(拼写?)。但是,如果通过jQuery trigger触发它们,那么通过jQuery附加的事件会发生。

sample code

答案 1 :(得分:2)

正如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');