簡體   English   中英

只需點擊幾下,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 屬性 該屬性與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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM