2010-11-08 6 views
2

эй ребята, Мне нравится функция jquery toggle. однако в настоящее время я столкнулся с небольшой проблемой, когда я не знаю, как ее решить наилучшим образом.jquery toggle - переключатель между функциями переключения?

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

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

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

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

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

ответ

7
$('#searchboxtrigger').click(function(){ 
    $('#searchbox').slideToggle('fast'); 
    }); 
5

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

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

//if already visible - slideDown 
//if not visible - slideUp 
$('#searchboxtrigger').toggle(
    function(){ 
    $('#searchbox').stop(true).slideDown('fast'); 
    }, 
    function(){ 
    $('#searchbox').stop(true).slideUp('fast'); 
    } 
); 
Смежные вопросы