1

我正在使用一个名为 dropkick 的 jQuery 插件来使我的选择框看起来更好。

在页面加载时,我执行 ajax 请求以从我的数据库中检索数据并用它填充表单。

一旦我填充了这个表单,我调用$.dropkick('reset');它将更新 dropkick 元素以表示表单数据。

如果我使用 F5 进行页面刷新,这可以正常工作,但是如果我通过转到 url 栏并按 Enter 进行刷新,那么有效地加载新页面我会收到一个错误,说 $.dropkick 不是函数。所以就好像当时还没有加载 dropkick 插件。

问题是,当 ajax 请求返回时,它在刷新而不是新页面加载后的工作方式似乎很奇怪。

加载插件的脚本标签首先是 dom 中的所有 ajax 代码,我使用的是 firefox 19.0.1

4

1 回答 1

1

您可以在使用 typeof 调用它之前检查是否定义了 dropkick,如果没有 - 通过 $.getScript 收集它,这将加载它以在回调中使用,

$(document).ready(function() {
    if ( typeof dropkick == "undefined" ) {
      $.getScript("js/dropkick.js", function(){
         $.dropkick('reset');  
         //.. More code
      });
    } 
});
于 2013-03-08T13:19:16.183 回答