参见英文答案 >
Adding jQuery to PrimeFaces results in Uncaught TypeError over all place1答案我已经在JSF页面的头包含JQuery1.5。在那个页面中有一堆已经编码的Primefaces组件。在我将Jquery.js包含在页面的头部之后,一些原始组件如< p:commandButton>失去其皮肤和< p:fileUpload>变得看起来像正常的JSP< input type =“file”>并完全失去其AJAX功能。
有没有办法使用JQuery安全地连同原始(没有冲突)?
解决方法
我有与问题中描述的相同的问题。这就是为什么我想出了以下解决方案:
包括内置的jQuery库(目前1.4.1)的包括一个自己的jQuery库导致CSS格式化问题。添加target =“head”属性允许在任何地方指定标记 – 例如。当使用模板时,您并不总是可以访问< head>标签:
<h:outputScript library="primefaces" name="jquery/jquery.js" target="head" />
默认情况下,在冲突模式下包括jQuery库。这意味着$()快捷方式不能使用。为了克服这个问题,请在< script>或< h:outputScript>标签:
<h:outputScript target="head"> // Add the $() function $ = jQuery; // Now you can use it $(document).ready(function() { ... }); </h:outputScript>
这是我可以挖掘到目前为止,使用primefaces 2.2.1的最佳解决方案。