私は、これは(スーパーシンプルでありながら非常に柔軟ではない)私の解決策だった同じ問題を抱えていた:
あなたはページの一部のためのロードIndikatorを追加したい場合は、2つの<h:panelGroup>
要素、のための1つを追加する必要がありますローディングインジケータとロードされたコンテンツのインジケータ。
例えば:
<h:panelGroup styleClass="contentPreview content">
<h:outputText id="previewText" styleClass="updatePreview" value="#{lazyResultBean.previewContent}" />
</h:panelGroup>
<h:panelGroup styleClass="contentPreview loading">
<p:graphicImage style="width: 15px; height: 15px;" name="/images/ajax-loader.gif" />
</h:panelGroup>
重要なのは、コンテンツのための正しいstyleClassののloading
ロードインジケータとcontent
のために設定することです。 両方のパネルには、共有するクラス(この場合はcontentPreview
クラス)が必要です。
インジケータとコンテンツの読み込みを切り替えるには、JavaScript関数を呼び出すだけです。 showLoading('.contentPreview')
ローディングインジケータ hideLoading('.contentPreview')
を表示して、インジケータを非表示にしてコンテンツを表示します。
:よく
function showLoading(clazz) {
console.log('showLoading' + clazz);
var loadingElements = $(clazz + '.loading');
loadingElements.each(function (index, el) {
el.style.display = 'block';
});
var contentElements = $(clazz + '.content');
contentElements.each(function (index, el) {
el.style.display = 'none';
});
}
function hideLoading(clazz) {
console.log('hideLoading' + clazz);
var loadingElements = $(clazz + '.loading');
loadingElements.each(function (index, el) {
el.style.display = 'none';
});
var contentElements = $(clazz + '.content');
contentElements.each(function (index, el) {
el.style.display = 'block';
});
}
を、私は別のAjaxの状態をトリガーするために何をしたい場合は、次のようにJavaScriptの関数の
コードが見えますか?私は完全にそれをオフにしたくありません。私は違った振る舞いをする別のものを誘発したい – lukas
私はまた、ソリューションをソーキングに興味があります...あなたはうまくいくものを見つけましたか? – simonC
Primefaces 5.1にはこの属性「global」はありません。なにか提案を。オートコンプリートコンポーネント用。 –