【发布时间】:2015-12-06 00:08:31
【问题描述】:
假设我有以下简单的插件:
(function ( $ ) {
$.fn.greenify = function() {
this.css( "color", "green" );
return this;
};
}( jQuery ));
我不想对插件本身进行任何更改,但我想用另一个函数包装并扩展其命名空间,如下所示:
(function($) {
$.fn.myFunction = function () {
(function ($) {
$.fn.greenify = function () {
this.css("color", "green");
return this;
};
}(jQuery));
};
})(jQuery);
所以我可以这样调用插件函数:
$(selector). myFunction().greenify();
基本上我想直接禁用调用'greenify'功能。
有可能吗?
【问题讨论】:
-
这样做有什么意义?
-
@Vohuman 同意知道为什么会很有用 - 这可能是一项任务 - 或者他们想用一些前/后代码包装其他插件 - 或者他们不喜欢原始名称 -或者他们只是想因为他们不知道如何:goodreads.com/quotes/…
-
你说得对,我应该解释更多,抱歉。这只是一个实验,我正在尝试学习如何安全地使用第三方插件。 @freedomn-m 提出了一些解释为什么更改或扩展插件命名空间可能有用的原因,我想采用这种方法的主要原因之一是防止第三方插件中的重复函数名称出现问题.通过对 Freedomn-m 解决方案的一些修改,我确实设法使其工作。
标签: javascript jquery function namespaces extend