Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Greasemonkey脚本在单击几下后停止设置复选框?_Javascript_Jquery_Firefox_Checkbox_Greasemonkey - Fatal编程技术网

Javascript Greasemonkey脚本在单击几下后停止设置复选框?

Javascript Greasemonkey脚本在单击几下后停止设置复选框?,javascript,jquery,firefox,checkbox,greasemonkey,Javascript,Jquery,Firefox,Checkbox,Greasemonkey,我使用一个网站,它有很多复选框来启用/禁用不同的选项。但是有一个缺点:要选中复选框,您需要单击复选框,但我希望能够单击标签,因为这样更容易。所以我决定写一个Greasemonkey脚本来添加这个功能 我启用了这个脚本,然后我访问了这个网页。首先我点击这个选项,复选框选中!然后我再次单击,它将取消选中。但进一步的点击并没有任何作用。这适用于网页上的所有选项,它适用于前两次点击,但随后停止工作。如何修复脚本以使其永久工作 我在Ubuntu12.10上使用Firefox19.0.2,而不是JS 这里

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

我启用了这个脚本,然后我访问了这个网页。首先我点击这个选项,复选框选中!然后我再次单击,它将取消选中。但进一步的点击并没有任何作用。这适用于网页上的所有选项,它适用于前两次点击,但随后停止工作。如何修复脚本以使其永久工作


我在Ubuntu12.10上使用Firefox19.0.2,而不是JS

这里是纯html

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

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

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


我不明白为什么它会停止工作。可能会动态添加新的复选框?试试
$(document)。在(“click”,“div.option”,function(){…})
上,这会产生相同的效果。我不拥有该网站,所以我无法更改其html代码(我可以用Greasemonkey来做,但这比我想做的要困难得多)
$("div.option").click ( function () {
    var $checkbox = $(this).children ("input");
    var isChecked = $checkbox.is (":checked");
    $checkbox.prop ("checked", !isChecked);
} );