我使用带有回调的jquery load函数在页面上加载html内容和javascript(使用getScript
)。但是我遇到了一个奇怪的情况,因为正在加载的javascript在第一次尝试时没有被识别(它在第二次或后续尝试时可以工作)或者没有到位警报。我已经阅读了类似的情况,建议的解决方案是为负载提供回调函数。但我已经有了回调函数。这是代码:
$("[id^=ajax_]").click(function(e){
var linkid = $(this).attr("id");
var arr = linkid.split("_");
var link = arr[1];
ajax_load_content_and_get_script(link);
});
function ajax_load_content_and_get_script(link) {
var url = "/" + link;
$("#pagecontent").load(url + "/ajax", function() {
//alert(); //works with this un-commented
$.getScript("/js/" + link + ".js");
});
}
正如您在上面所看到的,正在加载的脚本(使用getScript)被识别,并且如果我取消注释了alert语句,则可以正常工作。但是没有警报,剧本就无法识别。我已经在为负载使用回调函数,如上所示。
感谢您的帮助。
答案 0 :(得分:0)
看起来像这样?
$("button").click(function(e){
var linkid = $(this).attr("id");
var arr = linkid.split("_");
var link = arr[1];
ajax_load_content_and_get_script(link);
});
function ajax_load_content_and_get_script(link) {
var url = "/" + link;
$.ajax({
url: url + "/ajax",
type: 'POST',
async:false
}).success(function(data){){
$("#pagecontent").html(data);
$.getScript("/js/" + link + ".js");
});
}