私はdivにチェックボックスのグループを持っており、私はすべてのチェック/すべてのチェックを使用します。jquery:チェックボックスのグループを作成すると、1つのイベントが発生しますか?
HTML:
<div id="available_options" class="input">
<ul class="inputs-list">
<li>
<label>
<input type="checkbox" name="options" id="option_1" />
<span>Option1</span>
</label>
</li>
<li>
<label>
<input type="checkbox" name="options" id="option_2" />
<span>Option2</span>
</label>
</li>
</ul>
</div>
<a id="check_all_options">Check all</a>/<a id="uncheck_all_options">Uncheck all</a>
のjQuery:
$('#check_all_options').click(function(e){
$('#available_options input').attr('checked', 'checked').change();
});
$('#uncheck_all_options').click(function(e){
$('#available_options input').removeAttr('checked').change();
});
$('#available_options input').live('change', function(e){
alert('test');
});
現時点ではチェックボックスが良くなる/未チェックチェックされている時はいつでも私のアラートが発射されます。ただし、「すべてをチェック」/「すべてをオフにする」を使用すると、アラートは複数回発生します(各チェックボックスはイベントを発生しています)。私はstopPropagationで試しましたが、私はそれが私が欲しいことをすることができません。
変更が行われるたびに1回イベントを発生させる方法はありますか?私はデータベースクエリを起動するために選択されたオプションを取得できるようにしたい。しかし、checkall/uncheckallが使われているときに、クエリを何回も起動したくないのです。
おかげ
私は混乱しています。なぜあなたは明示的に 'change'イベントを引き起こしますか?すべての3つのハンドラからajax/dbクエリ関数を呼び出すだけです。 http://jsfiddle.net/liho1eye/95f9Z/ –
あなたのソリューションは私が欲しかったものです。もしあなたがそれを提案すれば、私はあなたに信用を与えることができます。ありがとう – Pierre