我正在尝试使用AJAX添加div并在其中加载内容,但div仍为空
$('#primary').fadeOut('slow', function(){
$('#primary').prepend('<div id="content"/>', function(){
$('#content').load(link+' #content', function(){
$('#primary').fadeIn('slow');
});
});
});
答案 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()
调用。