0

很高兴认识大家。我对此很陌生,但有点野心勃勃。

在跳过一些角落后,我做了一个 show/Hide Div,虽然它有效,但它仍然很草率。延迟是故意存在的,因为我无法让回调工作。如果内容框中的文本数量过多,这可能会成为一个问题……更不用说,为未来的项目学习也没有什么坏处。

所以我分享这个,征求批评,因为它非常陈旧,并询问如何让回调首先工作。(当然,如果需要,可以随意使用代码。)

是小提琴。

$("#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);
});
4

1 回答 1

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 演示

根据.show.hide文档,方法调用.show( [duration ] [, easing ] [, complete ] )是在 jQuery 1.4.3中添加的,并支持使用和调用easingcomplete callback function这将保持默认400持续时间)

于 2013-02-25T05:48:15.217 回答