0

JSF2.0とEclipseIndigoを使用していますが、最近、PrimeFacesライブラリをビルドパスに追加しました。この前は、jquery1.7.2+カラーボックスを使用して「ライトボックス」を機能させていました。私は次のものを持っていました:

<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)primefacesバンドルjqueryを使用してみてください(3.2バージョンは1.7.1 jQueryを使用します)

交換してください

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

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

編集

2)別のオプションは、primefacesバンドルjQueryをロードする前にjQueryとカラーボックスプラグインをロードすることです(テストされておらず、動作するかどうかさえわからないため、お勧めしません:))

<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 に答える