3

チェックボックスのスタイルを設定するjQueryプラグインを作成しています。私は実際のものを非表示にし、クリックすると非表示のチェックボックスを切り替えるボタンを挿入します。しかし、JavaScriptで非表示のチェックボックスをオンにしても、もちろん偽のボタンは変わりません。jQueryを使用して変更することを考えました.change()が、実際にチェックボックスをクリックするのではなく、JavaScriptで作成した場合も変更がトリガーされません。

プラグインをユニバーサルにし、JavaScriptで機能する「すべてチェック」や「すべてチェック解除」などのボタンがある場合にも機能させたいので、それに応じて偽のチェックボックスボタンを変更します。

問題は、マウスクリックだけでなく、たとえばjavascriptによって行われた変更を監視するために、代わりにjQueryのchange()を使用する必要があるメソッドです。 $('checkbox').prop('checked', true);

edit2: JavaScriptでプロパティを監視する適切な方法はないことに気付きましたが、チェックボックスごとにプロパティを1秒間に数回チェックする以外は、非常に魅力的ではありません。このような非効率的な機能をプラグインに含めず、代わりにユーザーに任せることにしました。 JavaScriptを介して値を操作する場合は、変更をトリガーします。

4

2 に答える 2

6

プロパティを見ることができません。数ミリ秒ごとに変更を探すタイマーを設定することもできますが、それでは不十分です。

代わりに、他のすべてのコードを使用して、自分のようなプラグインを更新する必要がある場合に、変更イベントをトリガーする必要があります(更新しない場合もあります)。

$(':checkbox').prop('checked', true).change();
于 2012-08-29T12:42:40.390 に答える
0

変更イベントを手動でトリガーする必要があります。

$('#checkbox').attr('checked', 'checked').change();

これを見てください: JsFiddle

于 2012-08-29T01:04:53.587 に答える