我使用带有回调的 jquery 加载函数在页面上加载 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)会被识别并且可以正常工作。但如果没有警报,该脚本将无法被识别。我已经在使用回调函数进行加载,如上所示。
感谢您对此的帮助。
最佳答案
看起来像这样吗?
$("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");
});
}
关于javascript - 即使有回调函数,jQuery 加载也不会在没有警报的情况下工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30655396/