Я пытаюсь показать div один за другим, когда нажата кнопка «add_more». Первый щелчок работает так, как мне бы хотелось, но во втором щелкнете все divs show.jQuery событие щелчка стрелять несколько раз
$(document).ready(function() {
$('#add_more').click(function() {
$('#add_more_fields').show(500);
});
});
$('#add_more').click(function() {
if($('#add_more_fields').is(':visible')) {
$('#add_more_fields2').show(500);
};
});
$('#add_more').click(function() {
if($('#add_more_fields2').is(':visible')) {
$('#add_more_fields3').show(500);
};
});
$('#add_more').click(function() {
if($('#add_more_fields3').is(':visible')) {
$('#add_more_fields4').show(500);
};
});
$('#add_more').click(function() {
if($('#add_more_fields4').is(':visible')) {
$('#add_more_fields5').show(500);
};
});
Я вижу проблему в том, что все они привязаны к одной функции мыши и запуская одновременно. Как отделить события, чтобы каждый клик добавлял следующий div?
Не используйте несколько обработчиков событий, которые обрабатывают одно и то же событие в быстрой последовательности. Хотя это работает (jQuery позволяет это, вызывая все из них, чтобы обработчик событий намного позже не перезаписывал уже существующий обработчик), это делает его намного труднее читать и добавляет строки кода, когда вы можете просто связать свой код в один обработчик событий. –
Хотя теперь, когда я сказал, что кто-то, вероятно, собирается придумать пример того, когда делать это, о котором я не думал. Но это, конечно же, не один из этих случаев. –