@hsnz

Почему JQuery срабатывает только после перезагрузки?

Коллеги, добрый день.
Помогите решить один момент.
У меня стоит обычный аккордеон на сайте. Но факт в том, что он срабатывает только если я обновляю страницу

var $title = $('.js-title');
var copy   = '.js-copy';

$title.click(function () {
  $(this).next(copy).slideToggle();
  $(this).parent().siblings().children().next().slideUp();
  return false;
});
  • Вопрос задан
  • 392 просмотра
Пригласить эксперта
Ответы на вопрос 3
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Попробуйте так:
$(function() {
var $title = $('.js-title');
var copy   = '.js-copy';

$title.click(function () {
  $(this).next(copy).slideToggle();
  $(this).parent().siblings().children().next().slideUp();
  return false;
});
})
Ответ написан
Jeer
@Jeer
уверенный пользователь
Потому что скрипт отрабатывает раньше, чем html элемент появляется на странице. Либо поместите этот код в онлоад, аналогом служит обёртка $( ваш код ), либо вместо .click используйте .live
Ответ написан
Комментировать
@iitovka
Виктор П. уже правильно ответил.

или можно
$(document).on('click', '.js-title', function () {
  $(this).next(copy).slideToggle();
  $(this).parent().siblings().children().next().slideUp();
  return false;
});
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы