Задать вопрос
kostyaostapuk
@kostyaostapuk

Почему не срабатывает show() и hide()?

Есть блок изначально скрытый display:none, по клику input:radio, появляется button который находится статично в html. По нажатию его он удаляет input:radio и генерирует новые с помощью jquery .append("верстка"). Есть ф-ция:
поместил .hide(), чтобы скрыть button по нажатию input:radio
Далее при нажатии на input:radio пытаюсь показать button .show(), но он не показывается :(

ps может это связано с тем, что новые генерируемые элементы не можно обрабатывать на события и их не видно в DOM? (предположения)

Generated(){
var bodyAnswer = "<div class='col-md-" + sizeCol + " text-center'>" +
        choice +
        "<br><img class='img-responsive rounded' src=" + img + "><br>" +
        "<input class='radio-btn' name='answer' value='question" + i + "' type='radio'>" +
        "</div>";
      answerBox.append(bodyAnswer);
}
Clear(){
удаляет блоки, которые не надо
$(".btn-box").hide(); //скрываю кнопку

}
$(".radio-btn").on("click",function() {
			$(".btn-box").show();
  });
  $(".btn-next").on("click",
    function() {
			$(".btn-box").hide();
      Clear();
      currentQuestion++;
      Generated();
			Up();
    }
  );


<div class="btn-box">
									<button id="next" class="btn-next">Следующий вопрос</button>
								</div>
							</div>


.btn-box{
display:none;
}
  • Вопрос задан
  • 330 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
AlexMaxTM
@AlexMaxTM
Сложно сказать не увидев весь код. Но как вариант, создайте глобальный обработчик, он срабатывает всегда.
$(document).on('click', '.btn_test', function() { alert('test'); });
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Nikulio
@Nikulio
NaN !== NaN
Хм, действительно сложный....ведь нужны умения гадания на кофейной гуще...Там есть уровень сложнее сложного? Может, "Невыполнимый"?
Ответ написан
SexyMonkey
@SexyMonkey

ps может это связано с тем, что новые генерируемые элементы не можно обрабатывать на события и их не видно в DOM? (предположения)

Именно. Используй.on()

А вообще, show() и hide() использовать не стоит. Скрытие и показ элементов стоит реализовать через добавление и удаление класса с нужными свойствами.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 13:22
30000 руб./за проект
18 дек. 2024, в 12:37
10000 руб./за проект
18 дек. 2024, в 12:22
5000 руб./за проект