`.load`完成后执行函数

时间:2013-06-07 12:47:14

标签: javascript jquery html

我想在slideUp函数之后加载文件(使用href变量),而不是之前。

我的代码:

$(document).ready(function() {
    $("#content").show().load($(".link2:first").attr('href'));

    $(".link").click(function() {
        var href = $(this).attr('href');
        $("#content").slideUp("slow");
        $("#content").slideDown("slow").load(href);

        return false;
    });
});

HTML:

<a href="testar2.html" class="link">Link 1</a>
<a href="testar.html" class="link">Link 2</a>
<div id="content">-</div>

任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

使用此:

$("#content").slideUp("slow", function(){
    $(this).load(href, function (responseText, status, req) {
        if (status != "error") $(this).slideDown("slow");
    });
});

我还添加了一个错误检查,以防.load()失败。

答案 1 :(得分:1)

将回调用于您的优势

$("#content").load(href, function() { 
    $(this).stop().slideDown("slow"); 
});

您可以通过将其放入slideUp回调中来以相同的方式包装加载。就个人而言,我不会等待动画完成,就像我上面那样做,因为这是用户等待内容的更多时间。停止将杀死动画。