次の質問のように、JSFレンダリングされたコンポーネントにJQueryを適用できるため
それを試した後、JQueryをJSFに正常に統合できましたが、問題は、たとえばh:dataTableを再レンダリングすると、JQueryが機能しなくなることです。ちなみに、RichFacesとa4jを使用しています。 -。
たとえば、次のようなデータテーブルがあります
<h:dataTable id="someDataTable" value="#{backingBean.someDataModel}" var="item" styleClass="table">
<h:column>
<h:outputText value="#{item.text}"/>
</h:column>
</h:dataTable>
クリックするとdataTableを再レンダリングし、新しいデータを再入力するボタンがあります。
<a4j:commandButton value="Click" reRender="someDataTable"/>
このスクリプトがページにあることを忘れないでください
<script>
jQuery.noConflict();
jQuery(document).ready(function () {
jQuery('.table').dataTable({
"bSort": false});
});
</script>
これで、ページが最初に読み込まれたときに並べ替えは正常に機能しますが、ボタンをクリックしてテーブルを再レンダリングすると、テーブルにバッキングBeanからの新しいデータが正常に入力されますが、並べ替えは機能しなくなります。
私が推測することから、これは何かと関係があるかもしれないと思います
jQuery(document).ready()
これを適用します
jQuery.('.table').dataTable();
ドキュメントの準備ができたときだけ、私はJQueryやJSの第一人者ではないので、dataTable再レンダリングイベントにアタッチできるイベントがjQueryにあるかどうか疑問に思いました。