Jquery - 访问插件的所有实例

时间:2016-06-26 06:49:37

标签: javascript jquery plugins find-occurrences

我正在开发一个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

1 个答案:

答案 0 :(得分:0)

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 ));

当你专注时,清除所有这些div父母或标记 将临时div添加到您的插件ID