我知道.append()
没有任何回调函数,但是当我尝试这样做时:
$.onShadowboxFinished = function (f) {
var postid = $(f.link).parent().attr("id");
var loadUrl = "wp-admin/admin-ajax.php?action=mfields_show_post&p=" + postid;
$('#infos_wrap').load(loadUrl).append();
alert("loaded! test selector :"+$('a.projectimgs').first().attr("href"));
}
我正在将内容(链接和图片)加载到div #infos_wrap
中。加载完所有链接和图像后,我想操作内容(例如:选择链接将它们添加到shadowbox缓存中)
现在,第4行在3日之前执行。
感谢您的帮助!
PS:如果有人真的需要帮助(我很感激^^)答案 0 :(得分:2)
你想要做的是使用.load()
函数的回调函数,因为它是异步的(意味着代码继续执行,直到它收到响应并触发其回调函数):
var postid = $(f.link).parent()[0].id,
loadUrl = "wp-admin/admin-ajax.php?action=mfields_show_post&p=" + postid;
$('#infos_wrap').load(loadUrl, function () {
alert("loaded! test selector :"+$('a.projectimgs').first()[0].href);
});
请注意,.load()
会将#infos_wrap
的内容替换为AJAX调用的响应(本例中为#infos_wrap
),因此我们不必使用{{1} (使用内部.append()
替换所选元素的HTML而不是附加响应)。
另请注意,我更改了.html()
的几个不需要的实例。
.attr()
的文档:http://api.jquery.com/load