jquery toggle - переключение между функциями переключения?

Привет, ребята, мне нравится функция переключения jquery. однако в настоящее время я столкнулся с небольшой проблемой, и я не знаю, как ее решить наилучшим образом.

у меня есть div под названием #searchbox, который зависит от пользовательских настроек, скрытых или видимых.

функция переключения, которая срабатывает, если я нажимаю кнопку, должна .slideDown() для #searchbox или .slideUp() для окна поиска.

 //if already visible - slideDown
//if not visible - slideUp
$('#searchboxtrigger').toggle(
  function(){
    $('#searchbox').slideDown('fast');
  },
  function(){
    $('#searchbox').slideUp('fast');
  }
);

на самом деле он уже отлично работает, единственное, что первая функция внутри toggle() всегда запускается первой, поэтому, если #searchbox уже виден и скользит вниз, он должен немедленно вызвать функцию slideUp и наоборот.

Любая идея, что я должен сделать, чтобы сделать эту работу?


person matt    schedule 08.11.2010    source источник


Ответы (1)


Измените код, включив в него stop().

Описание: остановить текущую анимацию соответствующих элементов.

//if already visible - slideDown
//if not visible - slideUp
$('#searchboxtrigger').toggle(
  function(){
    $('#searchbox').stop(true).slideDown('fast');
  },
  function(){
    $('#searchbox').stop(true).slideUp('fast');
  }
);
person Quintin Robinson    schedule 08.11.2010