我在我的网页中使用ajax,我在ajax页面中有一些javascript,将在加载ajax页面时执行。但问题是,在完全加载ajax页面之后,如何让jquery只执行脚本?
我尝试过:
$( '#ajaxdiv' ).load(function() {
}
但它根本没有运行代码。如果我把它.ready()
,那么它会运行代码,但不会在所有内容都加载后。
是否有可能只有一段代码只能在一切准备就绪后执行?
答案 0 :(得分:0)
您应该查看延迟的promise对象。这是一篇体面的文章,解释它是什么/如何使用它。
延迟对象 http://api.jquery.com/category/deferred-object/
http://css-tricks.com/multiple-simultaneous-ajax-requests-one-callback-jquery/ (以下文章中的示例代码。)
$.when(
// Get the HTML
$.get("/feature/", function(html) {
globalStore.html = html;
}),
// Get the CSS
$.get("/assets/feature.css", function(css) {
globalStore.css = css;
}),
// Get the JS
$.getScript("/assets/feature.js")
).then(function() {
// All is ready now, so...
// Add CSS to page
$("<style />").html(globalStore.css).appendTo("head");
// Add HTML to page
$("body").append(globalStore.html);
});