У меня есть группа флажков в DIV, и я использую функцию проверить все / снять все.
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, но я не могу заставить его делать то, что я хочу.
Есть какие-нибудь идеи, как включить его для запуска отдельного события каждый раз, когда вносятся изменения? Я хочу иметь возможность получить параметры, выбранные для запуска запроса к базе данных. Но я не хочу запускать запрос несколько раз, когда используется checkall / uncheckall.
Спасибо