- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
问题是:我有一个 very complex plugin它在执行时会做很多不同的初始化和绑定(bind)。
我希望能够在同一个元素上多次运行同一个插件,为其提供不同的选项。在元素上运行一次后,某些初始化不需要在该元素上的后续执行中再次进行。
目前,插件代码在一个闭包中,它不知道同一插件在该元素上运行的其他时间。
当人们想要相互交流时,是否有一种模式可以遵循?
我在想这样的事情:
$.plugin = {
globalRefs = [];
}
$.fn.plugin = function() {
var that = {};
$.fn.plugin.id ++; //each execution gets its unique id
var privateFn = function() { ... };
that.privateFn = privateFn; //expose all useful inner functions to that.
$.plugin.globalRefs[$.fn.plugin.id] = that; //make that global
}
$.fn.plugin.id = 0;
最佳答案
您说的是“其他插件”,但不清楚您指的是什么;还有什么插件?他们需要彼此“了解”什么?
如果您只想维护状态,为什么不直接使用 jQuery data()
机制在目标 DOM 元素上存储您需要的任何内容?这将使您的插件了解以前的调用,并且还允许这些神秘的“其他插件”也使用该存储的数据。
// ...
$(theElement).data('pluginName', { 'fabulous': 'data' });
您使用此机制存储的数据可以是您喜欢的任何内容:
$(theElement).data('pluginName', {
'aNumber': 23.5,
'anArray': ['hello', 'world'],
'aFunction': function(arg) {
alert("wow a function! Here is the argument: " + arg);
}
'anObject': {
'more': 'stuff'
}
});
关于javascript - jQuery:插件互通,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2788609/
我使用 ActionBar 实现了三个选项卡。 fragment 以编程方式编码。 我想在 Fragment2 (Tab2) 上设置监听器,以便当 Fragment1 通过回调(自定义监听器)发送一些
我想基于 做一个应用程序主包为 留下可能性其他开发商使 他们自己的包来实现其他功能 . Symfony 2.0 似乎是一个不错的选择,但是我不知道如何在保持解耦的同时让这些包一起工作。 在 MainB
我正在创建一个 UIViewController操作计算器界面,而另一个 UIViewController处理绘制图形。 当用户按下图形按钮时,计算器会提示图形重新绘制。然后,该图对计算器上的协议(p
我是一名优秀的程序员,十分优秀!