1

我们的插件函数类似于:var pluginName = function(selector, settings){}. 所以用户称它为var myPlugin = new pluginName('#id', {settings}). 但是如何检测该用户再次调用它,例如,使用新选项:myPlugin = new pluginName('#id', {settings_2})

我们需要检测到这一点以防止双重事件附加:诸如销毁创建的对象/删除事件并再次调用 init。

所以问题是我们无法访问myPlugin变量来检查它。

4

1 回答 1

1

只需将插件放在它自己的范围内:

var pluginName = (function(){
    var plugin_created = false; 
    var plugin = function(selector, settings){
        if(plugin_created) return false;
        plugin_created = true;
        //rest of the plugin class
    }
    return plugin;
})();

因此,当您第一次创建它时,它会将其本地范围变量设置为true,然后任何其他创建都将失败。

于 2013-04-24T15:34:10.427 回答