Этот вопрос связан с неправильным представлением о функции jQuery click()
(пожалуйста, прочтите документацию!). При привязке события click()
к элементу, например:
jQuery('.my-class').click(function(){ console.log('Clicked'); });
Означает только, что когда происходит щелчок по элементу с class="my-class"
, регистрируется сообщение «Clicked» ОДИН РАЗ.
На вашем код выше.
if(livelloStudio == '0') {
jQuery('.deleteGroup').each(function() {
console.log("how many repeat?");
jQuery(".deleteGroup").click();
});
jQuery('#group25').hide();
}
}
Прежде всего, вам здесь не понадобится each
. Когда вы просто выполняете jQuery(".deleteGroup").click();
, вы уже привязываете щелчок ко всем элементам .deleteGroup
. Если вы хотите сделать это одно за другим, используйте:
if(livelloStudio == '0') {
jQuery('.deleteGroup').each(function() {
console.log("how many repeat?");
jQuery(this).click();
});
jQuery('#group25').hide();
}
}
jQuery(".deleteGroup")
было изменено на jQuery(this)
, поэтому мы теперь связываем события click
одно за другим с deleteGroup
, а не для каждого итерация для всех, как и ваш исходный код.
Наконец, общий фиксированный код:
var livelloStudio = jQuery("input[name='iscritti___livelloIstruzione[]']:checked").val();
if(livelloStudio == '0') {
jQuery('.deleteGroup').click(function(){ console.log('Clicked'); });
jQuery('#group25').hide();
}
Обновление после комментариев
Удаление одного элемента на минус (-) при условии, что минус .deleteGroup
:
jQuery('.deleteGroup').click(function() { jQuery(this).remove(); });
Удаление всех элементов (переключатель). Пожалуйста, также просмотрите , как этого можно достичь с помощью jQuery или JS. Рассмотрим что-то вроде этого:
jQuery('.your-radio-buttons').change(function() {
if (this.value == '0') {
jQuery('.deleteGroup').each(function(){ jQuery(this).remove(); });
}
});