【问题标题】:Is it possible to change checkbox state without causing click event?是否可以在不引起点击事件的情况下更改复选框状态?
【发布时间】:2013-10-29 07:58:42
【问题描述】:

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

有可能吗?

【问题讨论】:

    标签: javascript jquery events checkbox


    【解决方案1】:

    如果在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

    【讨论】:

    • 似乎有效。谢谢。顺便说一句,propattr 有什么区别?
    • @dvir——一个改变属性,另一个改变属性。
    【解决方案2】:

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

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

    最后一个可能更正确。

    【讨论】:

    • 我需要那些我刚刚尝试通过选中复选框来找到解决方法的事件,但要避免一次点击事件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 2012-01-15
    • 1970-01-01
    相关资源
    最近更新 更多