构建Richfaces 4和Primefaces 3.5但似乎jQuery会发生冲突

时间:2013-03-23 03:23:52

标签: jquery jsf jsf-2 primefaces richfaces

我使用的是Richfaces4, 一切都很好看。 但就在我将以下行添加到我的pom.xml之后:

<dependency>  
    <groupId>org.primefaces</groupId>  
    <artifactId>primefaces</artifactId>  
    <version>3.5</version>  
</dependency> 

我尝试登录时出现以下错误, 似乎“Richfaces”和“jQuery”没有被包含/导入我的服务器?

 $ is not a function
    [Break On This Error]   

    </div><script type="text/javascript">$(document).ready(function() {

    home.seam (line 93)
    RichFaces is not defined
    [Break On This Error]   

    ...="display: none;"><script type="text/javascript">checkUpTime=function() 
    {RichFace...

2 个答案:

答案 0 :(得分:0)

使用jQuery.noConflict(),因为你有jQuery与其他库冲突。

  

描述:放弃jQuery对$变量的控制。

     

许多JavaScript库使用$作为函数或变量名称,就像jQuery一样。在jQuery's案例中,$只是jQuery的别名,因此所有功能均可在不使用$的情况下使用。如果您需要在jQuery旁边使用其他JavaScript库,请通过调用$$.noConflict()的控制权返还给其他库。在$初始化期间保存jQuery的旧引用; noConflict()只是简单地恢复它们。

<强> Read More

示例

jQuery.noConflict();

// Use jQuery via jQuery(...)
jQuery(document).ready(function()
{
    jQuery("div").hide();
});

var $jQ = jQuery.noConflict();

// Use jQuery via $jQ(...)
$jQ(document).ready(function()

{
    $jQ("div").hide();
});

使用以下技术,允许我们在代码块中使用$而不会覆盖$

(function($) { /* some code that uses $ */ })(jQuery) 

答案 1 :(得分:0)

现在在Primefaces 3.5.1中解决了。这被标记为issue 5219。要查看PrimeFaces来源的更改,请检查revision 8796