假设我有一个函数插件,比如$.abc = jQuery () {}。现在我想提供一个额外的模块,它使用与$.abc相同的作用域并扩展其功能。例如,在我的abc插件中,我将检查变量mod1 = true,如果是true,那么我将自动调用mod1的这些函数。
我的问题是,我如何编写mod1,以便它可以与我的基本插件共享相同的名称空间,并且我能够从我的插件调用它,例如mod1.getFiles();
感谢您的宝贵时间。如果这不是很清楚,很抱歉。如果你有任何问题,我会再解释一遍。
更新:如何调用pluginbar的函数测试?
$.fn.pluginFoo = function() {
...
CALL FUNCTION TEST OF PLUGINBAR
...
};
$.fn.pluginBar = function() {
...
function test() {
alert('this is a test');
}
...
};
发布于 2009-07-19 04:10:36
不需要创建共享数据对象。您可以使用简单的返回语句将一个插件的一些功能公开给其他插件。
$.fn.pluginFoo = function () {
// here you can access public "members" of pluginBar
$.fn.pluginBar.fn3();
$.fn.pluginBar.fn4();
}
$.fn.pluginBar = function () {
// private "members" (only this plugin can access them)
var fn1 = function () { ... }
var fn2 = function () { ... }
// public "members" (other plugin can access that as well)
// fn3 is defined in the return, fn4 allows to access private function fn1
return {
fn3: function () { ... },
fn4: fn1
};
}
发布于 2009-07-18 21:56:50
你想要两个插件访问一组共享的数据/函数,你可以这样做:
var myPluginData = {
flag: true,
alertNothing: function() {
alert('I do Nothing');
}
};
$.fn.pluginFoo = function() {
...
myPluginData.flag = false;
myPluginData.alertNothing();
...
};
$.fn.pluginBar = function() {
...
myPluginData.alertNothing();
myPluginData.flag = true;
...
};
你实际上不需要为它定义一个对象,但它确实让事情变得更清晰。
https://stackoverflow.com/questions/1149274
复制