在命名空间中混合javascript和jquery

时间:2012-04-20 23:33:29

标签: javascript jquery namespaces firebug

几个星期前遇到麻烦在萤火虫(特别是在drupal网站上)运行。显然问题是Drupal正在抓取$变量,所以我得到了一个小的命名空间片段(函数($)...(Jquery));那回收了$。我一直在使用firebug中的命名空间但是会产生不一致的结果,特别是在命名空间中混合纯javascript和Jquery时。我知道所有Jquery都是javascript并且它们一起工作,但是看一下样本我看到人们部署这个命名空间的方式有些奇怪的变化。作为一般性问题,但也特别是在Firebug上下文中,是否需要将javascript放置在命名空间Jquery的任何特定关系中(在命名空间内部,函数调用内部,函数输出或任何其他约定)? 感谢

1 个答案:

答案 0 :(得分:2)

如果你的意思是阻止$被收回,那么就没有任何约定,但有办法。其他框架也使用$名称。稍后宣布使用$的任何内容都将接管$。但是,你可以阻止它或绕过它。

jQuery通过noConflict()方法提供了很多方法来阻止它。但我首选的方法是将它们包装在一个函数中。 jQuery还使用jQuery命名空间。 $是一个速记别名,也是一个非常常见的别名。所以像$.each()这样的函数也是jQuery.each()。什么疯狂的框架无论如何都使用jQuery作为它的命名空间?

包装函数的一个例子是这样的:

(function($){

    //inside here, "$" is jQuery

}(jQuery)); //pass "jQuery"