【问题标题】:Trigger change of a checkbox made by javascript触发由javascript制作的复选框的更改
【发布时间】:2012-08-29 00:37:08
【问题描述】:

我正在构建一个 jQuery 插件来设置复选框的样式。我隐藏了真实的,然后插入按钮,单击该按钮会切换隐藏的复选框。但是如果我通过 JavaScript 检查隐藏的复选框,假按钮当然不会改变。我曾考虑过使用 jQuery 的 .change() 对其进行更改,但它也不会在通过 JavaScript 而不是通过实际单击复选框来触发更改。

我希望插件是通用的,并且如果有人有一个像“全选”或“取消全选”这样的按钮来使用 JavaScript,我希望我的假复选框按钮也能相应地改变。

问题是我应该使用什么方法来代替 jQuery 的 change() 以便不仅可以查看鼠标点击所做的更改,还可以查看 javascript 的更改 $('checkbox').prop('checked', true);

edit2: 我意识到没有正确的方法来使用 JavaScript 来查看属性,除了每秒检查几次非常没有吸引力的复选框的属性。我决定不在我的插件中包含这种低效的功能,而是将它留给用户来触发如果他想通过 JavaScript 操作值,请更改。

【问题讨论】:

    标签: javascript jquery checkbox onchange


    【解决方案1】:

    您无法查看属性。您可以设置一个每隔几毫秒查找更改的计时器,但这并不令人满意。

    相反,当他们希望像您这样的插件更新时,您应该依赖所有其他代码来触发更改事件(也可能存在不更新的情况):

    $(':checkbox').prop('checked', true).change();
    

    【讨论】:

      【解决方案2】:

      您需要手动触发更改事件。

      $('#checkbox').attr('checked', 'checked').change();
      

      看看这个: JsFiddle

      【讨论】:

        猜你喜欢
        • 2018-02-11
        • 1970-01-01
        • 1970-01-01
        • 2013-07-08
        • 1970-01-01
        • 2013-08-03
        • 2013-03-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多