jquery: this.not(':animated') && that.is(':visible') не соответствует правилам, проблема с синтаксисом? всего несколько строк кода

когда я нажимаю на #button, он по-прежнему выполняет 'do something', хотя .wrapper анимируется, а .wrapper span не отображается. так что это не по правилам. что случилось?

$('#button').click(function(){
  if(
    $('.wrapper').not(':animated') && $('.wrapper span').is(':visible')
  ) {
    //do something
  }
})

person android.nick    schedule 25.10.2010    source источник
comment
not(':animated') — это не проверка, а селектор. поэтому он вернет [], если все '.wrapper' анимированы   -  person glebm    schedule 25.10.2010


Ответы (2)


Вот вам working demo:

$('#button').click(function(){
if(    $('.wrapper:animated').length>0)
{
 $(".wrapper").text("animating")   ;
}
  if(
    $('.wrapper:animated').length<1) {
 $(".wrapper").text("not animating")   ;
  }
})
person netadictos    schedule 25.10.2010

Это немного чище без операторов if. рабочая демонстрация

$('#button').click(function(){ 
    $('.wrapper').filter(':animated').text("animating...");
    $('.wrapper').filter(':not(:animated)').text("not animating...");
}) 

person Nico Westerdale    schedule 22.06.2012