[英]Eventlistener stops working after few clicks with no errors in console
[英]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
屬性的值 。 該屬性與checked 屬性 / 狀態不同 。
在jQuery中執行此操作的正確方法是使用.prop()
,如下所示:
$("div.option").click ( function () {
var $checkbox = $(this).children ("input");
var isChecked = $checkbox.is (":checked");
$checkbox.prop ("checked", !isChecked);
} );
使用標簽label
而不是JS
純HTML在這里http://jsfiddle.net/RAkjk/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.