私はこのようなものを作りたい:
$('.select').on("click", $( "checkbox[id$='select-all']" ), toggle);
基本的に、id に select-all サフィックスが付いたチェックボックスが .selecte クラスの要素内でクリックされた場合にのみ、トグル機能を実行したいと考えています。ただし、チェックボックスをクリックするたびにトグル機能が実行されます。ここで何が間違っていますか?変更イベントについても同様です。
これを試しましたか:
$('.select').on("click", "input[id$='select-all']", toggle);
この.on()
メソッドを使用すると、(オプションで) セレクターを 2 番目の引数の文字列として指定できます。jQuery オブジェクトは想定されていません。オブジェクトを渡した場合、それはデータであると見なされ、イベント ハンドラに として渡されevent.data
ます。
また、チェックボックスは実際には の入力であると想定しているtype="checkbox"
ため、セレクター文字列は である必要はあり"input..."
ません"checkbox..."
。:checkbox
(または、セレクターを使用することもできますが、効率が悪い可能性が高いと思います。おそらく"input:checkbox[id$='select-all']"
。)
これを試して:
$('.select').on("click", "checkbox[id$='select-all']", toggle);