2010-11-08 158 views
2

嘿家伙, 我喜欢jQuery的切换功能。然而目前我面临的一个小问题,我不知道如何以最好的方式解决它。jquery切换 - 切换功能之间切换?

我有一个名为#searchbox的div,它取决于隐藏或可见的用户设置。

切换功能,如果我点击一个按钮,触发应该.slideDown()#searchbox或.slideUp()搜索框。

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

实际上它的伟大工程已,唯一的是,内部切换第一()函数总是最先被解雇,所以如果#searchbox已经是可见的,slidedDown应立即触发效果基本show功能,反之亦然。

任何想法,我必须做的工作?

回答

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'); 
    } 
);