私はPrimeFaces 3.4の折りたたみ可能なパネルを使用しています。実際のソリューションの問題は、右側の小さなボタンをクリックしてパネルを切り替えることです。これはあまり人間工学的ではなく、ユーザーはヘッダーの任意の場所をクリックして切り替えを行うことを期待します。
これは私が実装したいものです: ヘッダーをクリックしてトグルをトリガーし、トグル ボタンを削除します。これは私が書いたものです:
$('.ui-panel-titlebar').each(function(){
var header = $(this);
var widgetId = 'widget_' + header.attr('id').replace(/:/g, '_').replace(/_header$/, '');
header.css('cursor', 'pointer');
var toggler = header.find('a[id$=_toggler]');
toggler.remove();
header.click(function(){
window[widgetId].toggle();
});
});
しかし、私はその解決策が好きではありません。なぜなら、最初に JavaScript ウィジェット ID を推測し、次にレンダリングされたトグル ボタンを DOM ツリーから削除していて、まったくレンダリングされないようにしたいからです。
あまりにも多くのコードを記述せずに (したがって、p:panel
. PrimeFaces と同じライセンス (商取引に適した) に基づく拡張機能を使用することは、ソリューションとして受け入れられます。