有人可以告诉我如何停用事件onchange并重新激活它
order
编辑1: 让我解释一下我的问题......我正在使用bootstrap切换onmy复选框。但也许这只是一个细节。
所以我的问题是..我的表单上有一个“重置”按钮。当我点击它时,我有一个函数,它在我的表单的每个复选框上循环,试图“重置”每个复选框。通过重置我的复选框,我的意思是将它们设置为初始值。 。 。但这样做我会在我的代码中触发一个“onchange”函数。而且我不想触发“onchange”功能
答案 0 :(得分:4)
我会推荐两个选项中的一个。
首先,您可以通过为函数命名来取消绑定和重新绑定处理程序:
function handleCheckboxClick(e) {
//...
}
$(':checkbox').off('change');
$(':checkbox').on('change', handleCheckboxClick);
另一个选项是根据需要创建一个设置为true
或false
的变量,以指定是否执行处理程序:
$(':checkbox').on('change', function(e) {
if (!window.shouldExecuteCheckboxChangeHandler)
return;
//...
});
答案 1 :(得分:0)
您可以使用on
和off
:
$(':checkbox').each(function (k, v) {
$(this).off("change", myFunction)
//do stuff
$(this).on("change", myFunction)
}
function myFunction(e) {
//your event handling code
}
最初设置处理程序时,您还需要使用myFunction
。
答案 2 :(得分:-1)
$(this).prop('disabled',true).delay (500).prop('disabled',false)
答案 3 :(得分:-1)
您可以禁用并启用元素。
$(':checkbox').attr('disabled', 'disabled');
$(':checkbox').removeAttr('disabled');