1

さまざまなオプションを有効/無効にするためのチェックボックスがたくさんあるWebサイトを使用しています。ただし、デメリットがあります。チェックボックスをオンにするには、チェックボックスをクリックする必要がありますが、ラベルをクリックする方が簡単なので、クリックできるようにしたいと思います。そこで、この機能を追加するためにGreasemonkeyスクリプトを作成することにしました。

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

このスクリプトを有効にしてから、Webページにアクセスします。まず、オプションをクリックすると、チェックボックスがオンになります。次に、もう一度クリックすると、チェックが外れます。しかし、それ以上クリックしても何も起こりません。これはWebページのすべてのオプションに当てはまり、最初の2回のクリックで機能しますが、その後は機能しなくなります。スクリプトを修正して永続的に機能させるにはどうすればよいですか?

Ubuntu12.10でFirefox19.0.2を使用しています

4

2 に答える 2

3

そのような属性のを切り替えることはできません。属性は、checkedプロパティ/状態と同じではありません。checked

jQuery でこれを行う正しい方法は.prop()、次のように を使用することです。

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


「jQuery または JavaScript でチェックボックスをチェックするにはどうすればよいですか?」を 参照してください。

于 2013-03-19T10:08:10.493 に答える
0

labelJS の代わりにタグを使用する

ここに純粋なhtml http://jsfiddle.net/RAkjk/

于 2013-03-19T09:58:58.497 に答える