jQuery условный addClass не работает

Немного повесить трубку с помощью jQuery addClass. У меня есть #story div в моей разметке, которая сжимается, когда он получает класс "away", а затем всплывает обратно, когда теряет этот класс.

Вот загвоздка:

$('#story div.x').on('click', function () {
  if (!$('#story').hasClass('away')) {
    $('#story').addClass('away');
  }
});

Приведенный выше код просто добавляет пустой класс = "" к моему элементу story, но...

$('#story div.x').on('click', function () {
  if (!$('#story').hasClass('away')) {
    setTimeout(function () {
      $('#story').addClass('away');
    }, 1000);
  }
});

Этот код добавляет соответствующий атрибут class = "away".

Что дает?

1 ответ

Решение

Похоже, что есть другое событие, обновляющее класс, или, возможно, элемент еще не готов, но становится доступным через 1 секунду, возможно, после вызова ajax или когда DOM готов.

Может ли это быть?

Другие вопросы по тегам