是否可以在不导致单击事件的情况下更改复选框状态

Is it possible to change checkbox state without causing click event?

本文关键字:情况下 状态 复选框 事件 单击 是否      更新时间:2023-09-26

>我正在尝试找到一种方法来防止input[type='checkbox']在使用jquery更改其状态时触发click事件。

可能吗?

如果在 checked 属性上使用.prop(),则不会触发任何点击事件:

$("input[type='checkbox']").click(function() {
  alert('checkbox clicked');
});
$('#mycheckbox').prop('checked', true);
$('#mycheckbox').prop('checked', false);
$('#mycheckbox').prop('checked', true);
$('#mycheckbox').prop('checked', false);
$('#mycheckbox').prop('checked', true);

http://jsbin.com/ecIQUle/3/edit

根据您要执行的操作,以下方法之一可能会有所帮助:

  • 从事件处理程序返回false<input type=checkbox onclick="return false;"></input>
  • 使用 jQuery 的 preventDefault
  • 使用 jQuery 的 stopPropagation

最后一个可能更正确。