2013-02-11 5 views
0

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

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

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

Код выше просто добавляет пустой класс = «» мой рассказ элемента, но ...

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

Этот код добавляет соответствующий класс =» .

Что дает?

+2

Вы обновляете классы элемента '# story' где-то еще? – Alexander

+1

Следуя за вопросом Александра: Может ли быть другой обработчик события клика, вызванный после того, который вы отправили здесь, который очищает класс? Вы можете быстро протестировать это, вернув «false» из функции обработчика событий «click». – dgvid

+0

@Mathletics, этот код работает иначе, чем один OP использует – Alexander

ответ

1

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

Может ли быть так?

Смежные вопросы