2013-02-25 38 views
0

很高兴见到大家。我是新手,但有点过于雄心勃勃。显示更多/收起Div,回拨功能

我跳过一些角后做了一个演出/隐藏Div,尽管它有效,但它仍然是马虎。延迟是有意的,因为我无法获得回调工作。这可能是一个问题,如果在内容框中有不可能的文本量......更不用说,为未来的项目学习不会有什么伤害。

所以我分享这个,要求批评,因为它非常陈腐,并且要求如何让回调工作在第一位。 (当然,如果需要,可以自由使用代码)。

Here是小提琴。

$("#open").click(function() { 
    $(this).hide("fast"); 
    $("#content").delay(50).show("fold"); 
    $("#close-bottom,#close-top").delay(800).fadeIn(0); 
}); 

$("#close-bottom,#close-top").click(function() { 
    $("#close-bottom,#close-top").hide("fast"); 
    $("#content").hide("fold"); 
    $("#open").delay(300).fadeIn(0); 
}); 

回答

0

可以"fold"后添加回调作为第二个参数,如下所示:

$("#open").click(function() { 
    $(this).hide("fast"); 
    $("#content").show("fold", function() { 
     $("#close-bottom,#close-top").fadeIn(0); 
    }); 
}); 

$("#close-bottom,#close-top").click(function() { 
    $("#close-bottom,#close-top").hide("fast"); 
    $("#content").hide("fold", function() { 
     $("#open").fadeIn(0); 
    }); 
}); 

jsfiddle demo

.show.hide文档中的jQuery 1.4.3加入与.show([duration ] [, easing ] [, complete ])方法调用并且只支持easingcomplete callback function(这将保持默认的400持续时间)

+0

哇,非常感谢!我不断点击按钮来打开和关闭它,并且愚蠢地高兴它可以工作,嘿。 (我无法想象如何让语法起作用,你是一个拯救生命的人。) – freddin 2013-02-25 08:02:24