我试图在前面加一个div并用AJAX加载内容,但div仍然是空的

时间:2012-02-18 03:58:38

标签: jquery load prepend

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

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

3 个答案:

答案 0 :(得分:2)

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

您可以将一个函数作为第一个参数传递,但它不能仅仅预先添加到一个元素。

这是你的代码修复。

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

答案 1 :(得分:0)

prepend没有回调,这是一个立即的变化。试试这个:

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

答案 2 :(得分:0)

尝试以下内容:

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

.prepend() method不接受回调。我使用.prependTo()代替(也没有回调),因为它保留了上下文,因此可以链接.load()调用。