2009-08-25 9 views
0

私は同僚は、ページの読み込みに私は可視性なしで可能なすべてのツールチップを追加することが示唆された。このjQueryのツールチップ:上それらを非表示/

$(clickedElement).append('<span id="activeHelpTip" class="helpTip">Loading help...</span>'); 
$('#activeHelpTip').remove(); 

のようにツールチップを表示しています非表示、およびshow /ショー対削除/追加デマンド。

違いは何ですか?誰も気にしない?

編集:ツールチップがajaxサービスによって提供されることは重要ですか?

答えて

1

セレクタの厳密なスコープのベストプラクティスに従うことで、あなたがしていることはうまくいくでしょう。したがって、変更するパフォーマンス上の理由はありません。

メンテナンス性の観点から、ヒントのリストをより編集可能にするために、間違いなくマークを上げてテキストを取り除くことができます。

+0

ツールチップがajaxサービスによって提供されることは重要ですか? –

+0

あなたのセレクターはまだ狭義には正しい位置に注入され、よく書かれています。おそらく、選択された要素にコンテンツを追加するために、ajaxコールのポストバックを配線しています。 –

1

私は、あなたの同僚が話しているようにするのがやや簡単でメンテナンス性が高いと言いたいと思います。通常は、ヒントが参照する要素の横、HTMLではなく、あなたはJS文字列の代わりにHTMLで直接記述しています。

私はどちらかが他のものよりも目に見えるほど速くなるとは思っていません。あるいは、意味のある量のメモリを使用します。

あなたの編集:あなたのツールチップが現在Ajax経由でプルされている場合は、代わりにページにプリロードされていればもっと速くなるでしょう。

+0

そのままツールチップはレンダリングされたHTMLの要素の隣にあります。私はHTMLとc/p '

+0

各要素に独自のツールヒントテキストがありますか?同じツールチップを使用する30個の要素がある場合は、30個の繰り返しツールヒントスパンを作成しないでください。私はおそらく、それがすでに機能しているからといって、もしあなたが実際に行っていることにとどまっているかもしれませんが、実際に表示/非表示の方法に進んでいたければ、30のすべての要素について、たとえば、30個の要素を含む一部のセクションの上端を表示し、表示するときにスパンをカーソルに再配置します。 – chaos

0

これは、これを行うにはもっとクリーンで簡単な方法です。また、隠れ要素のfadeIn()/ fadeOut()、slideDown()/ slideUpなどのヒントを表示/非表示にするさまざまな方法を使用できます。

+0

私はそれがもっときれいになる方法を理解するのに役立ちます。私が変えることを躊躇する唯一の理由は、このやり方が単純なように思えることです。 –

+0

あなたはそのような30の要素があるとは言わなかった。その場合、絶対のツールチップ要素を使用し、その要素を表示/非表示の前にカーソル位置に設定することをお勧めします(カオスは既に提案されています)。 – Technowise

0

既にjQueryを使用しているので、Tooltip pluginをチェックアウトする必要があります。ツールチップを簡単に見せることができ、非常に柔軟性があります。

1

追加と削除の代わりに表示と非表示を使用する最大の理由は、.remove()を使用するとすべてのイベントハンドラが破棄され、削除対象のDOMオブジェクトに$.dataがキャッシュされることです。 jQuery docs

から

は DOMから、一致したすべての要素を削除します。これは のjQueryオブジェクトから削除されず、 の要素をさらに使用できます。注: この関数は1.2.2 で始まり、すべてのイベントハンドラ と内部的にキャッシュされたデータも削除されます。したがって:

関連する問題