javascript - 即使有回调函数,jQuery 加载也不会在没有警报的情况下工作

标签 javascript jquery ajax

我使用带有回调的 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");
    });

}

http://jsfiddle.net/aswzen/w4068ygL/3/

关于javascript - 即使有回调函数,jQuery 加载也不会在没有警报的情况下工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30655396/

相关文章:

javascript - R - 使用 DT 按行格式化

javascript - 使 jQuery 图像 slider 停在最后一张图像并添加下一个和上一个按钮

javascript - 使用 jQuery 在 n 个元素后插入一个 div

javascript - jQuery 不会切换 css 属性?

jquery - 如何在页面加载时将网页内容加载到 div 中?

javascript - 使用ajax将单选按钮的值发送到node.js

javascript - 无法将项目推送到状态内的项目数组

javascript - 在 JSX 中循环对象时如何获取索引?

javascript - 调整浏览器大小时调用函数 Angular 1.5(组件)

javascript - 根据服务器响应的变化进行ajax调用?