我有一个 PrimeFaces 网络应用程序。当我像下面这样手动添加 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>
丢失填充等。
这是怎么引起的,我该如何解决?
最佳答案
PrimeFaces 已经捆绑了 jQuery,但您已经下载并安装了另一个只会与 PrimeFaces 捆绑的 jQuery 冲突的工具。我敢肯定,如果您对网络浏览器的内置 JavaScript 控制台给予更多关注和喜爱,您就会看到 JS 错误。而且,如果您通过右键单击检查 JSF 生成的 HTML 输出,在网络浏览器中查看源代码,您会看到另一个 jquery.js
文件包含在 HTML 中 <head>
.
您需要删除以下行:
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
如果您的页面不一定使用 PrimeFaces 组件,因此不会自动包含其 jQuery,那么您需要通过适当的 <h:outputScript>
显式加载其捆绑的 jQuery。 .
<h:outputScript library="primefaces" name="jquery/jquery.js" />
请注意,使用 <h:outputScript>
最终不会出现在实际使用 PrimeFaces 组件的页面上的重复脚本中。
另见:
关于javascript - 如何在 PrimeFaces 中使用 jQuery 和 jQuery 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11112058/