我有一个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。
答案 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" }');
}
});