设置$ .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更改元素不会触发更改事件。

    http://jsfiddle.net/8JsP4/

    请注意,如果单击示例中的复选框,您会收到警报,但如果单击该按钮,则不会发出警报。

    现在,您的选择器定位所有input元素。 您可以为主要复选框指定一个Id,将其他复选框指定为一个通用类。

     
    • $('li:first').bind('change', function() { $(this).find('li').prop('checked', 'checked'); }); // exists elsewhere, cannot change
  • 尝试取消绑定onchange侦听器,然后在设置属性后再次绑定它。