【发布时间】:2010-11-28 09:25:32
【问题描述】:
我正在编写一个 jQuery 插件,我想知道如何确保我不会覆盖未来的 jQuery 本机方法。
比如我的插件叫Foo,用法是$('selector').foo()。
jQuery 2.6 注意到 Foo 的流行并决定将其包含在核心包中。它也通过$('selector').foo()使用。
我不希望我的 Foo 覆盖 jQuery 的原生 Foo(否则会发生冲突)。
这就是我想出的......
(function($) {
// If jQuery adds this method, we don't want to overwrite it
if (typeof $.foo === 'function') {
return;
};
$.fn.foo = function() {
// Foo
};
})(jQuery);
这是最好的方法吗?
【问题讨论】:
-
如果您的 foo 实现与 jQuery 不同,那么您的插件会出现错误...不过,这可能是一个好习惯,也许我会尝试一下 :-)
标签: javascript jquery jquery-plugins