我创建了两个通用的jquery插件文件。 ' script1.js'和' script2.js'
某些项目需要' script1.js' &安培;其他需要' script2.js'。 我的新项目需要这两个插件。
我如何使用具有相同命名空间的这些插件。
我的命名空间是' abc '
script1.js
----------
(function($)
{
$.fn.abc = function ()
{
return
{
foo1: function()
{
console.log("foo1");
},
foo2: function()
{
console.log("foo2");
}
}
};
})(jQuery);
$(" .element&#34)。ABC()foo1(); //工作正常 - ' foo1'
script2.js
----------
(function($)
{
$.fn.abc = function ()
{
return
{
foo3: function()
{
console.log("foo3");
}
}
};
})(jQuery);
我可以使用第二个插件扩展第一个插件。
$(" .element&#34)。ABC()foo3(); //预期打印' foo3'
$(" .element&#34)。ABC()foo1(); //预期打印' foo1'
foo1&几乎每个应用程序都需要foo2。但每个应用程序都不需要foo3。 foo3是一个更大的插件。
答案 0 :(得分:0)
参考这个答案。 Best Way to Extend a jQuery Plugin
更新:如果您可以编辑现有的script1.js插件
(function($) {
$.fn.abc = function() {
return {
foo1: function() {
console.log("foo1");
},
foo2: function() {
console.log("foo2");
},
foo3: function() {
console.log("foo3");
}
}
};
})(jQuery);
这样做。
如果要使用.abc()
.xyz()
命名空间的函数
$.fn.abc = function () {
// here you can access public "members" of plugin xyz
$.fn.pluginBar.foo3();
}
$.fn.xyz = function () {
// private "members" (only this plugin can access them)
var fn1 = function () { ... }
var fn2 = function () { ... }
return {
foo3: function () { console.log("foo3") },
};
}