0

我正在使用 JSF2.0 和 Eclipse Indigo,最近我将 PrimeFaces 库添加到我的构建路径中。在此之前,我有一个使用 jquery1.7.2 + colorbox 工作的“灯箱”。我有以下内容:

<h:outputStylesheet library="css" name="style.css" type="text/css"/>  
<h:outputStylesheet library="css" name="colorbox.css" type="text/css"/>        
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>  
<h:outputScript library="js" name="jquery.colorbox.js" target="head"/>

资源位于WebContent/resources/js.

添加PrimeFaces后,我的“灯箱”不再起作用,因为colorbox找不到该功能。查看 JSF2 生成的源代码后,我注意到该库在我的上方插入了它自己的 jQuery 版本,jquery.colorbox.js因此颜色框库无法使用 jQuery 库。此外,缺少 jquery.colorbox.js 包含。

如何将 PrimeFaces JavaScript 库重新定位到页面上的不同位置?为什么我jquery.colorbox.js没有像以前那样加载?

我的实际页面可能有用。它就在这里

我仍然从 Chrome 中的 JavaScript 控制台收到相同的错误。当页面加载时我得到这个:

Uncaught ReferenceError: jQuery is not defined

当我单击我的颜色框链接时,以下内容:

Uncaught TypeError: Object [object Object] has no method 'colorbox'
(anonymous function):8080/g5.ambience/:24
b.event.dispatchjquery.js.html:16
b.event.add.bD.handle.bB

即使有丹尼尔斯的建议,这里是产生的来源:http: //pastie.org/3851179

4

1 回答 1

4

1) try using primefaces bundled jquery (3.2 version uses the 1.7.1 jQuery)

replace the

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>  

with

<h:outputScript library="primefaces" name="jquery/jquery.js" target="head" />
<h:outputScript target="head">
    $ = jQuery;
</h:outputScript>

EDIT

2) another option is to load your jQuery and the colorbox plugin before the loading of the primefaces bundled jQuery (not tested and not even sure that it will work , so it's not recommended :) )

<f:facet name="first">
    <h:outputScript library="primefaces" name="jquery/jquery.js"/>
    <h:outputScript target="head">
        $ = jQuery;
    </h:outputScript>
</f:facet>
<h:outputScript library="js" name="jquery.colorbox.js" target="head"/>
于 2012-05-02T20:26:05.610 回答