【发布时间】:2012-04-04 23:05:45
【问题描述】:
我有一个使用 Richfaces 4.1 组件的应用程序,它依赖于一个使用原型的旧的、自写的库。现在,当我在同一页面上同时使用两者时,我会在 $ 函数上遇到冲突,这会被 Richfaces 调用几次。
有没有办法强制richfaces 进入非冲突的jQuery 版本?还是默认情况下已经是这种情况了,还有其他问题?
【问题讨论】:
标签: jquery jsf-2 prototypejs richfaces
我有一个使用 Richfaces 4.1 组件的应用程序,它依赖于一个使用原型的旧的、自写的库。现在,当我在同一页面上同时使用两者时,我会在 $ 函数上遇到冲突,这会被 Richfaces 调用几次。
有没有办法强制richfaces 进入非冲突的jQuery 版本?还是默认情况下已经是这种情况了,还有其他问题?
【问题讨论】:
标签: jquery jsf-2 prototypejs richfaces
原发帖者的问题是他的代码调用了 Prototype,不是 jQuery,但是 RichFaces 4.1 已经放弃了 Prototype,现在假设 $ 总是指向 jQuery。因此,如果使用 noConflict(),RichFaces 生成的 Javascript 会失败,因为它会发出 $('#id_1') 之类的代码,并且 $ 没有指向 jQuery。而且没有办法包装 RichFaces js。
原来这是一个已知的错误:RF-11881。它应该在 RichFaces 4.3.0 Milestone 1 中修复。
【讨论】:
使用 jQuery.noConflict(),然后每次编写 javascript 代码时都将其包装在匿名函数中
(function($){
// here $ is jQuery object!
})(jQuery);
【讨论】: