单击几次后,Greasemonkey脚本停止设置复选框
Greasemonkey script stops setting checkboxes after a few clicks?
我使用一个网站,它有很多复选框来启用/禁用不同的选项。但是有一个缺点:要选中复选框,您需要单击复选框,但我希望能够单击标签,因为这样更容易。所以我决定编写一个Greasemonkey脚本来添加这个功能
$("div.option").click(function() {
$checkbox = $(this).children("input");
isChecked = $checkbox.is(":checked");
$checkbox.attr("checked", !isChecked);
});
我启用了这个脚本,然后我访问了网页。首先我点击这个选项,然后复选框就选中了!然后我再点一下,它就取消勾选了。但进一步点击没有任何作用。这适用于网页上的所有选项,它在前两次点击中工作,但随后停止工作。如何修复脚本,使其永久工作?
我在Ubuntu 12.10上使用Firefox 19.0.2
您不能像那样切换checked
属性的值。该属性与选中的属性/状态不一样。
在jQuery中正确的方法是使用.prop()
,如下所示:
$("div.option").click ( function () {
var $checkbox = $(this).children ("input");
var isChecked = $checkbox.is (":checked");
$checkbox.prop ("checked", !isChecked);
} );
参见"如何使用jQuery或JavaScript勾选复选框?"
使用标签label
代替JS
纯html这里http://jsfiddle.net/RAkjk/
相关文章:
- 我该如何组合这两个Greasemonkey脚本
- 我如何让jQuery使用Greasemonkey 0.8脚本(在Firefox 2上),在没有互联网的情况下使用PC
- 一些 Greasemonkey 脚本顶部的这一行是什么
- setinterval() 和 .click() 在 Greasemonkey 脚本中
- 如何测试Greasemonkey脚本,尤其是在本地网页副本上
- 如何从Greasemonkey脚本创建Firefox插件
- Greasemonkey脚本编译器显示错误
- 我如何制作一个类似GreaseMonkey的脚本,在下三分之一显示不同的页面
- 如何将 JSON 字符串中的文本替换为 Greasemonkey 的用户脚本
- Greasemonkey 可防止脚本在 Inernet 出现故障时卡住
- 如何在Twitter对话中的每个无限滚动事件上执行Greasemonkey脚本
- 在 Greasemonkey 脚本中 – 点击事件不会在 Firefox 中触发
- 在同一页面上多次运行 Greasemonkey 脚本
- 用于拦截按键的 Greasemonkey 脚本
- 使用 greasemonkey 禁用现有脚本中的焦点功能
- 如何为 Greasemonkey 脚本创建切换按钮
- 如何在 Greasemonkey 脚本中播放声音
- Greasemonkey 脚本似乎忽略了 setInterval
- Greasemonkey 脚本使用 jQuery 忽略附加到表行的元素
- 如何在网站中使用用户脚本?(Greasemonkey是如何工作的)