暂时停用 onchange 事件

zm4*_*455 5 javascript jquery

有人可以告诉我如何停用 onchange 事件并重新激活它

 $(':checkbox').each(function (k, v) {
     $(this).onchange = null;//
     $(this).off() // works but I do not know how to  reactivate onchange event
 })
Run Code Online (Sandbox Code Playgroud)

编辑 1:让我向您解释我的问题......我在我的复选框上使用引导程序切换。但也许这只是一个细节。

所以我的问题是..我的表单上有一个“重置”按钮。当我点击它时,我有一个函数在我的表单的每个复选框上循环尝试“重置”每个复选框。通过重置我的复选框,我的意思是将它们设置为初始值。. . 但是这样做我会触发稍后出现在我的代码中的“onchange”函数。而且我不想触发那个“onchange”功能

Jas*_*n P 6

我会推荐两种选择之一。

首先,您可以通过为函数命名来解除绑定和重新绑定处理程序:

function handleCheckboxClick(e) {
    //...
}

$(':checkbox').off('change');
$(':checkbox').on('change', handleCheckboxClick);
Run Code Online (Sandbox Code Playgroud)

另一个选项是创建一个您设置为truefalse根据需要指定是否执行处理程序的变量:

$(':checkbox').on('change', function(e) {
    if (!window.shouldExecuteCheckboxChangeHandler)
        return;

    //...
});
Run Code Online (Sandbox Code Playgroud)