2017-10-09 20 views
0

新しいツールチップを開いたときに自動的にツールチップを閉じることができるかどうかを探しています。私はPrimefaces 6.1を使用しています。新しいツールチップを開いたときにツールチップを閉じる

<p:tooltip for="clientName" showEffect="clip" hideEvent="dblclick" 
    position="bottom"> 

現時点では、次のように動作します:私のデータテーブルのラベルにマウスオーバーし、ツールチップが開きます。開いたラベルをダブルクリックすると、ツールチップが消えます。しかし、問題は、私が偶然、その時点で30のツールチップのように、ちょうどいくつかのdatatableエントリを移動することによって開くことができるということです。

短く:私はその時点で1つのツールチップを開くだけです。しかし、私はツールヒントをMouseLeaveイベントで閉じる必要はありません。

何か提案がありましたら幸いです。ありがとう。

答えて

1

使用(6.1ドキュメント内のページ542)PrimeFacesのマニュアルに従うツールチップのonShow又はonBeforeShow属性

onShowツールチップが表示された後 クライアント側コールバックが実行します。

beforeShow ツールチップが表示される前に実行するクライアントサイドコールバック。 falseを返すと表示されません。

その点で、他のすべてのツールチップを非表示にするには、任意のjavascript(jquery)を呼び出すことができます。

しかし、なぜshowDelayを使用しないでください。 defaul 150の代わりに500 ms?

+0

「ほとんど」働いています。問題は:beforeShowを使用すると、それはもはや開いていません。 onShowを使用すると、表示されるとすぐに閉じます。私のjsメソッドは次のとおりです。 function closeTooltip(){ \t PF( 'tooltip-pd')。hide(); } showDelayは良いアイデアですが、10msのように表示させるためには、ラベル上にマウスを置くだけでよいという事実は変わりません。遅延を1000msに設定すると、「ホバー」タイマーでは機能しません。 どのように私はそれを動作させることができますか?しかし、多くのあなたの助けてくれてありがとう:) –

+0

あなたは明示的に 'あなたのjavascriptで' true 'を' beforeShow 'と一緒に使用する必要があります。何も返さない(あなたがしているかどうかわからない)のは「偽」と解釈され、表示されないようにドキュメント内で読むことができます。 – Kukeltje

+0

ヒントをお寄せいただきありがとうございます。私はちょうど単純に追加しようとしました:trueを返します。しかし、私はそれが間違っていると思う。私はどのようにjsで動作するかについての手掛かりがありません。あなたは私が本当に何を書くべきか教えていただけますか?私はツールチップにID「tooltip-pd」を付けました。 –

関連する問題