一尘不染

如何在PrimeFaces中使用jQuery和jQuery插件

javascript

我有一个PrimeFaces Web应用程序。当我手动添加jQuery和如下所示的插件时,

<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript" src="js/onebyone/jquery.onebyone.js"></script>              
<script type="text/javascript" src="js/onebyone/jquery.touchwipe.min.js"></script> 
<script type="text/javascript" src="js/jquery.carouFredSel-5.5.0.js"></script>

然后PrimeFaces组件会失去其功能和某些样式。例如,<p:dialog>不显示,<p:accordionPanel>不滑动,<p:panelGrid>丢失填充等。

这是怎么引起的,我该如何解决?


阅读 378

收藏
2020-05-01

共1个答案

一尘不染

PrimeFaces已经附带捆绑了jQuery的产品,但是您已经下载并安装了另一个仅与PrimeFaces捆绑的jQuery冲突的产品。我敢肯定,如果您对Web浏览器的内置JavaScript控制台多加关注和喜爱,您肯定会看到JS错误。而且,如果您通过右键单击Webbrowser中的“
查看源代码” 检查了JSF生成的HTML输出,您将看到jquery.jsHTML中包含了另一个文件<head>

您需要 删除 以下行:

<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>

如果您的页面不一定使用PrimeFaces组件,因此不会自动包含它的jQuery,那么您需要通过适当的显式加载其捆绑的jQuery
<h:outputScript>

<h:outputScript library="primefaces" name="jquery/jquery.js" />

请注意,使用<h:outputScript>并不会最终导致在实际使用PrimeFaces组件的页面上包含重复脚本。

2020-05-01