Jquery-访问插件的所有实例
Jquery - access to all instances of a plugin
我正在开发一个jquery插件"myPlugin
",它可以做一些图形化的事情。它运行良好,我对此感到高兴。
(function ( $ ) {
$.fn.myPlugin = function(params) {
/* some code */
$(this).focus(function() {
/* draw things */
});
};
}( jQuery ));
我这样称呼它:$("#foo").myPlugin();
一切都很好:每次元素获得焦点时,插件都会被触发,绘制出一些很酷的东西。插件包含一个私有函数end
,我最终可以通过函数close
从外部访问它
(function ( $ ) {
$.fn.myPlugin = function(params) {
/* some code */
$(this).focus(function() {
/* draw things */
});
function end(){
/* destroy the draw */
}
return{
close: function() { end(); }
}
};
}( jQuery ));
这个功能允许我"从外部"关闭插件。
var bar = $("#foo").myPlugin(); // create the graphic
bar.close(); // destroy the graphic for this element
一切仍然很好!但现在,我有一个问题:我想访问所有的插件。假设我需要创建一个随机数:
var bar1 = $("#foo1").myPlugin();
var bar2 = $("#foo2").myPlugin();
var bar3 = $("#foo3").myPlugin();
我希望当一个元素获得焦点(并开始绘制(时,它确实会破坏所有其他现有的元素:
何时:
$("#foo1").focus(); // make the draw
它也这样做:
bar2.close(); // destroy an eventual draw of #foo2
bar3.close(); // destroy an eventual draw of #foo3
在这里。。。我被阻止了如何访问我的插件的所有内容我想把所有的var名称(bar1,bar2,bar3,…(保存在某个地方,以便访问它,但我无法通过插件获得它们。或者最终创建第二个中间插件,该插件将启动myPlugin
并存储名称。。。我很困惑。有什么想法吗?
干杯<3
You can do something like this
(function ( $ ) {
$.fn.myPlugin = function(params) {
/* some code */
$(this).focus(function() {
//clear previous things
$('.myplugin').parent().remove()// or remove your markings
//append
$(this).append('<div class=".myplugin"></div>')
/* draw things */
});
function end(){
/* destroy the draw */
}
return{
close: function() { end(); }
}
};
}( jQuery ));
u聚焦时清除所有此类div父级或标记在插件id 中添加一个临时div
相关文章:
- 如何在事件函数中访问窗口实例
- 为什么原型需要通过实例访问
- 访问 javascript 对象的实例变量
- Angular2/Typescript:从链接可观察函数访问实例变量
- 如何在Promise回调中访问实例变量
- 如何在 JavaScript 中循环访问此 List 类的实例
- 如何访问类实例上的事件侦听器
- 从 $scope 上的函数访问控制器内的实例函数
- 如何在使用构造函数进行原型设计时访问实例
- Javascript中最快的类/对象访问/实例化是什么
- 如何从函数/实例外部访问变量
- 如何访问实例上的静态成员
- 从视图中访问另一个操作实例变量
- 从视图访问实例变量
- 从多个Node.js实例访问同一个setTimeout()实例
- 从Typescript中的实例访问静态方法
- 通过函数实例访问JS函数变量
- Jquery插件:对象不能从同一个实例访问
- Javascript递归:如何对父节点的实例访问子节点
- 从方法实例访问这个变量