暂时停用onchange事件

时间:2016-08-11 15:15:31

标签: javascript jquery

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

order

编辑1: 让我解释一下我的问题......我正在使用bootstrap切换onmy复选框。但也许这只是一个细节。

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

4 个答案:

答案 0 :(得分:4)

我会推荐两个选项中的一个。

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

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

$(':checkbox').off('change');
$(':checkbox').on('change', handleCheckboxClick);

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

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

    //...
});

答案 1 :(得分:0)

您可以使用onoff

 $(':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');