如何在slideToggle完成之前延迟显示元素?

时间:2011-05-15 14:09:21

标签: jquery

这是我的代码。

$(".big").click(function() {
    var widget = $(this).parent();
    widget.children('.layer-dark').slideToggle(300).fadeTo(1, 0.97);
    widget.children('.loading, .hm_sm_btn').show();
});

现在,如何在上一个操作.loading完成后完成.hm_sm_btn show()slideToggle操作。现在,这些项目立即显示出来,所以我正在寻找一些简单易行的方法来实现短暂延迟,并在slideToggle()完成后显示它们。

希望我的问题很明确,谢谢。

3 个答案:

答案 0 :(得分:3)

widget.children('.layer-dark').slideToggle(300, function() {
    widget.children('.loading, .hm_sm_btn').show();
}).fadeTo(1, 0.97);

使用回调。

.slideToggle文档清楚地显示,当slideToggle操作完成时,您可以传入回调以进行进一步的计算。

您应该花更多时间阅读文档。这很好。

答案 1 :(得分:0)

您可以为slideToggle函数添加回调函数(请参阅documentation):

$(".big").click(function() {
    var widget = $(this).parent();
    widget.children('.layer-dark')
          .slideToggle(300, function() { widget.children('.loading, .hm_sm_btn').show() })
          .fadeTo(1, 0.97);
});

答案 2 :(得分:0)

也许你可以试试回调方式。

$(".big").click(function() { var widget = $(this).parent(); widget.children('.layer-dark').slideToggle(300, function(){ widget.children('.loading, .hm_sm_btn').show(); }).fadeTo(1, 0.97); });