2

我正在尝试添加一个 div 并使用 AJAX 在其中加载内容,但 div 仍然为空

$('#primary').fadeOut('slow', function(){
        $('#primary').prepend('<div id="content"/>', function(){
            $('#content').load(link+' #content', function(){
                $('#primary').fadeIn('slow');
            });
        });
    });
4

3 回答 3

2

.prepend方法不接受回调,因为它不是异步的。

您可以将函数作为第一个参数传递,但它对于仅添加到一个元素没有那么有用。

这是您修复的代码。

$('#primary').fadeOut('slow', function(){
    var content = $('<div id="content"/>'),
        primary = $(this);
    primary.prepend( content );
    content.load(link + ' #content', function(){
        primary.fadeIn('slow');
    });
});
于 2012-02-18T04:02:42.463 回答
0

prepend没有回调,这是立即更改。试试这个:

$('#primary').fadeOut('slow', function(){
    $('<div id="content"/>').prependTo('#primary')
         .load(link+' #content', function(){
            $('#primary').fadeIn('slow');
        });
});
于 2012-02-18T04:05:02.930 回答
0

尝试以下操作:

$('#primary').fadeOut('slow', function(){
    var primary = this;
    $('<div id="content"/>')
        .prependTo(primary)
        .load(link+' #content', function(){
            $(primary).fadeIn('slow');
        });
    });
});

.prepend()方法不接受回调。我.prependTo()改用了(它也不接受回调),因为它保留了上下文,因此.load()可以链接调用。

于 2012-02-18T04:07:22.413 回答