如何避免jquery插件之间的函数冲突

时间:2010-03-09 15:25:22

标签: jquery jquery-plugins

我遇到了一个问题,我最终得到了两个名为相同的函数(jquery.fn.filter)。一个来自第三方插件,另一个来自我的一个插件。显然我可以在我的插件中重命名该函数,但是如何最好地编写插件以避免发生这种情况的可能性?是否有可能引入某种类型的命名空间,如java / .net do?

2 个答案:

答案 0 :(得分:2)

这里的问题不在于jquery代码是否可以命名空间 - 您描述的冲突发生在您的jQuery插件的“导出”界面中,即用户的函数名称。这与传统意义上的命名空间无关。

由于jQuerys概念的一个重要组成部分是在集合中使用简短易记的函数名称,因此在不牺牲简单性的情况下,没有任何事情可以做到这一点。

话虽如此,一个可能的,但丑陋的解决方案看起来像:

$("#selector").fns("my.name.space.company")("myargument");

此代码将调用一个假想的函数fns,它将给定的字符串解析为实函数并返回此函数。但是,将此功能作为插件实现会带来同样的问题......

结论:没有出路; - )

答案 1 :(得分:0)

我喜欢你对jQuery命名空间的看法。

如果你在同名下有任何函数,那么

http://docs.jquery.com/Using_jQuery_with_Other_Libraries)没有帮助。