0

对于 iCheck 插件,有没有办法在从 Javascript 设置复选框时避免“ifChanged”事件处理程序启动?

4

2 回答 2

6

老问题,但我发现一个更好的方法是检查event.target.checked属性并仅在返回 true 时运行您的代码。iCheck 触发ifChanged 两次- 首先是未选中的选项,然后是选中的选项。所以如果你只运行你的代码 if event.target.checked === true,你会得到你想要的结果。

于 2015-01-26T16:54:02.013 回答
2

您可以创建一个变量ignoreChange并在订阅事件处理程序时检查该变量是否为,如果是,则将其设置为并停止该函数。如果它不是true,那么您可以执行您的正常代码。

JS代码:

var ignoreChange = false;

$('input').on('ifChanged', function(event){

    if (ignoreChange) {
        ignoreChange = false;
        return;
    }

    // do stuff
});

// When changing the checkbox
ignoreChange = true;

基本上,每当您将变量ignoreChange设置为 true 时,都会忽略下一个事件调用。这是一个非常老套的解决方法,但很有必要,因为我没有找到通过 iCheck 库解决您的问题的方法。

于 2014-04-24T11:48:16.333 回答