Хорошо, я создал этот плагин для wordpress, пытаясь найти решение для этой простой задачи, что несколько строк js должны работать ... просто для снятия отметки с других флажков когда один проверяется.Снимите отметку с других флажков, если один из них отмечен
I имеют 4 входных в гнездились в DIV-х в соответствии с этим:
<div class="nutrition-mc-group nutrition-mc-group-activity-level">
<div class="nutrition-mc-selection-box">
<div class="nutrition-mc-checkbox-outter">
<input type="checkbox" id="squared-checkbox1">
<label class="nutrition-mc-checkbox" id="mc-sedentary-select" for="squared-checkbox1"></label>
</div>
<p class="nutrition-mc-notes nutrition-mc-notes-switch">Sedentary</p>
<p class="nutrition-mc-description">Typical desk job/Sitting most of the day</p>
</div>
<div class="nutrition-mc-selection-box">
<div class="nutrition-mc-checkbox-outter">
<input type="checkbox" id="squared-checkbox2">
<label class="nutrition-mc-checkbox" id="mc-lightly-active-select" for="squared-checkbox2"></label>
</div>
<p class="nutrition-mc-notes nutrition-mc-notes-switch">Lightly Active </p>
<p class="nutrition-mc-description">Walking around a good amount, retail jobs</p>
</div>
<div class="nutrition-mc-selection-box">
<div class="nutrition-mc-checkbox-outter">
<input type="checkbox" id="squared-checkbox3">
<label class="nutrition-mc-checkbox" id="mc-moderately-active-select" for="squared-checkbox3"></label>
</div>
<p class="nutrition-mc-notes nutrition-mc-notes-switch">Moderately Active</p>
<p class="nutrition-mc-description">Walking constantly in a fast paced environment, waiting tables</p>
</div>
<div class="nutrition-mc-selection-box">
<div class="nutrition-mc-checkbox-outter">
<input type="checkbox" id="squared-checkbox4">
<label class="nutrition-mc-checkbox" id="mc-vigorously-active-select" for="squared-checkbox4"></label>
</div>
<p class="nutrition-mc-notes nutrition-mc-notes-switch">Vigorously Active</p>
<p class="nutrition-mc-description">Very labor intensive, construction workers</p>
</div>
</div>
теперь JS немного отличается, я попытался упростить ее как можно больше:
this.allActive = this.mod.find('.nutrition-mc-group-activity-level input');
_init: function(){
this.allActive.on('change', $.proxy(this._uncheckActivityBtn, this));
},
_uncheckActivityBtn: function(){
$(this.allActive).not(this).prop('checked', false);
},
Он работает нормально, но его как будто он не признает аргумент части not(this)
. , если я меняю .prop
на true
, он меняет аргумент, и все проверки проверяются при его проверке. Я не могу понять, почему он не понимает часть аргумента this
и не исключает выбранное в данный момент поле.
Я попытался просто переместить все в одной функции, но при выполнении отладки вывод дал ошибку для оператора not (this), говоря что-то о нем не указано.
Для этого, похоже, вам просто нужно использовать переключатель, а не флажок. Поведение тогда происходит по умолчанию, когда все входы имеют одинаковый атрибут 'name' –
yes ... пожалуйста, используйте переключатель для этого поведения –