【问题标题】:How do you load a Javascript file inside of the success function for $.ajax()?如何在 $.ajax() 的成功函数中加载 Javascript 文件?
【发布时间】:2012-02-07 07:35:00
【问题描述】:

我正在使用 jQuery 的 $.ajax() 来获取一些数据。我想将该数据包含在弹出对话框中。我正在使用 Twitter Bootstrap 弹出框。

它不工作;我认为问题在于弹出框的 JS 在数据到达之前就被加载了。

我该怎么做:

<script src="{{ STATIC_URL }}js/bootstrap-popover.js"></script>

在我的 $.ajax() 成功函数内部?

var request = $.ajax({
    url: requestUrl,
    dataType: "jsonp",
    success: function(data) {
       ...
    }

【问题讨论】:

    标签: javascript ajax jquery twitter-bootstrap


    【解决方案1】:

    你可以使用jQuery的$.getScript方法:

    success: function(data) {
      $.getScript("myurl/js/bootstrap-popover.js");
    }
    

    【讨论】:

    • 但是,这应该不是必需的,仅此代码不会检测脚本何时实际加载,因此可以使用它。
    【解决方案2】:

    在尝试为您提供更好的解决方案时,您的初步结论对我来说没有意义。您应该能够在 ajax 调用之前很久就包含弹出框 javascript,然后使用代码实际调用弹出框或在成功处理程序中的任何新添加的内容上对其进行配置。

    我知道没有理由在成功处理程序中加载弹出框 js。预先加载它(以正常方式加载其他脚本),然后在成功处理程序中使用它来进行 ajax 调用。为了帮助您了解如何使用 popover 脚本,我们需要了解更多有关您尝试使用它的信息。

    【讨论】:

    • 非常感谢,您说的对。我打电话给 $('.popover-items').popover();在成功处理程序结束时,这解决了问题。无需延迟加载js文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    相关资源
    最近更新 更多