我们可以用prototype p或$ proto之类的东西替换prototype.js中的$

时间:2015-10-21 14:09:49

标签: javascript jquery prototypejs

我正在使用jquery和prototype.js。 $中有冲突。可以通过使用var $ j = jQuery.noConflict()来解决,但我有大量的文件使用$ for jquery,因此不容易删除。即使我使用的是一些也需要重命名的插件。(比如jquery.dataTables.bootstrap.js,其中我必须从$更改为$ j)

所以我的问题是我们可以将prototype.js中的$重命名为其他东西,所以它很容易。我正在使用1.5.1版的原型。 感谢

2 个答案:

答案 0 :(得分:0)

简单回答,不 - 一些PrototypeJS模块(Array,Enumerable,RegExp,String等)依赖于可用的$()函数,并期望它返回扩展元素而不是jQuery集合

但是,您可以将jQuery代码包装在一个立即执行的函数中,以解决您的问题。

例如

(function($){

    //jQuery code in here that uses $()


})(jQuery);

这基本上是一个Javascript闭包,在该上下文中将jQuery()方法重命名为$()

答案 1 :(得分:0)

将$更改为$ p导致一些问题(比如调用jquery hide或show function,调用prototype.js函数)。所以解决冲突的方法是在新选项卡中打开prototype.js相关内容并使用jquery.noConflict()。