mouseleave仅在第一个动画加载jquery时

时间:2014-07-02 22:21:55

标签: jquery

我遇到了jquery问题。

我有这个代码,工作正常。

<script>
    $(document).ready(function(){
        $( "#botonbox" ).click(function() {
        $( ".middle-content-left" ).css( "height", "700" );
        $( "#normalboxid" ).animate({height:'700px'},1000 );
        $( "#botonbox" ).css( "display", "none" );
    });
});
</script>

我想只有当这个动画结束时,如果光标鼠标留下。中间内容回来,回到第一高度(.middle-content-left to height:310px和#normalboxdiv to height:132px)

1 个答案:

答案 0 :(得分:1)

.click方法没有回调;它只有一个处理程序参数。换句话说,第二个function() { }块是语法错误。

相反,如果您希望在#normalboxid动画完成后激活第二部分,请创建一个全局变量,并在单击该元素时将其设置为true。然后,在鼠标离开处理程序内部,检查前一个变量是真还是假:

<script>
var botonboxClicked = false;
$(document).ready(function(){
    $( "#botonbox" ).click(function() {
        $( ".middle-content-left" ).css( "height", "700" );
        $( "#normalboxid" ).animate({height:'700px'}, 1000, function() {
            botonboxClicked = true;
        });
        $( "#botonbox" ).css( "display", "none" );
    });
    $( ".middle-content-left" ).mouseleave(function() {
        if (botonboxClicked) {
            $( ".middle-content-left" ).animate({height:'310px'},1000 );
            $( "#normalboxid" ).animate({height:'132px'},1000 );
            $( "#botonbox" ).css( "display", "block" );
        }
    });
});
</script>

请参阅http://api.jquery.com/click/http://api.jquery.com/animate/