设置$ .prop()而不触发更改
- $('input').bind('change', function() {}); // exists elsewhere, cannot change
当我单击顶级输入时,我想为其所有子项设置.prop('checked', true)
,但我想避免为每个子复选框触发change
事件。
如何在不触发change
情况下将.prop('checked', true)
设置为输入?
编辑:(扩展)
$('#master').click(function() { $(this).parent().find('input').each(function(n, in) { $(in).prop('checked', true); // this triggers a change event that I need to stop }); });
您所描述的是默认function。 从javascript更改元素不会触发更改事件。
请注意,如果单击示例中的复选框,您会收到警报,但如果单击该按钮,则不会发出警报。
现在,您的选择器定位所有input
元素。 您可以为主要复选框指定一个Id,将其他复选框指定为一个通用类。
- $('li:first').bind('change', function() { $(this).find('li').prop('checked', 'checked'); }); // exists elsewhere, cannot change
尝试取消绑定onchange侦听器,然后在设置属性后再次绑定它。