只需点击几下,Greasemonkey脚本就会停止设置复选框?

时间:2013-03-19 09:42:22

标签: javascript jquery firefox checkbox greasemonkey

我使用的网站有很多复选框,可以启用/禁用不同的选项。但是有一个缺点:要选中复选框,您需要单击复选框,但我希望能够单击标签,因为它更容易。所以我决定编写一个Greasemonkey脚本来添加这个功能

$("div.option").click(function() {
    $checkbox = $(this).children("input");
    isChecked = $checkbox.is(":checked");
    $checkbox.attr("checked", !isChecked);
});

我启用了此脚本,然后访问了该网页。首先,我点击选项,复选框检查!然后我再次点击,它取消选中。但进一步点击不会做任何事情。这适用于网页上的所有选项,它适用于前两次点击,但随后停止工作。如何修复脚本以使其永久工作?

我在Ubuntu 12.10上使用Firefox 19.0.2

2 个答案:

答案 0 :(得分:3)

您不能像这样切换checked 属性。该属性与选中的属性 / 状态不同。

在jQuery中执行此操作的正确方法是使用.prop(),如下所示:

$("div.option").click ( function () {
    var $checkbox = $(this).children ("input");
    var isChecked = $checkbox.is (":checked");
    $checkbox.prop ("checked", !isChecked);
} );


"How do I check a checkbox with jQuery or JavaScript?"

答案 1 :(得分:0)

使用标记label代替JS

纯html http://jsfiddle.net/RAkjk/