如何有条件地加载jQuery插件?

时间:2011-09-05 17:08:16

标签: javascript jquery asp.net

我有一个asp.net UserControl,可以多次添加到页面。在这个UserControl上我使用的是一个jQuery插件,我只想加载一次。我正在使用以下代码来有条件地加载jQuery本身:

if (typeof jQuery == 'undefined') {
    // load jquery 
    var script = document.createElement('script');
    script.type = "text/javascript";
    script.src = "/_layouts/SprocketValidator/jQuery.js";
    document.getElementsByTagName('head')[0].appendChild(script);
} else {
    //already loaded
}

是否有一个等价的用于检查jQuery插件是否未定义?我使用的插件是digitalBush masked input plugin

2 个答案:

答案 0 :(得分:3)

尝试:

if (typeof jQuery.fn.mask == 'undefined')

jquery-methods(通常也是插件方法)存储为$.fn的属性,因此您需要检查插件中可用的方法(例如mask())是否被称为成员$.fn

答案 1 :(得分:0)

您可以使用 YepNope.js 之类的内容here。然后,你可以像这样编写你的javascript:

yepnope({
  test: window.JSON,
  nope: "/_layouts/SprocketValidator/jQuery.js",
  complete: function () {
    var data = window.JSON.parse('{ "json" : "string" }');
  }
});