2017-09-13 8 views
0

テキストのあるページがあり、テキストの一部の単語が動的に変更される可能性があります。これらの単語には要素があり、ツールチップが必要です。ユーザーが単語を移動すると(または、タッチデバイス上をクリックしていると推測される)、generateSpecialMarkupElement($(element).text())を使用してツールチップを生成する必要があります。 HTMLがDOMにレンダリングされたら、別のJavaScript関数をreplaceMarkupHTML()と呼びます。
私は残念なことにこれらの機能を制御できません。オンザフライでブートストラップツールチップを生成

今私はブートストラップでこれを行う簡単な方法があるのだろうかと思っています。例えば、第1の機能を実行するためのbeforeイベントと、第2の機能を呼び出すafterイベント。ここで

は簡単な例テキストと機能を簡略化したバージョンです:
http://jsfiddle.net/8aqz5auk/1/

だから、この種のものを傍受/フックのブートストラップ方法はありますか?それとも、別の簡単な方法がありますか?

:私はちょうど考えがありました。ブートストラップにツールヒントが表示されると、DOMに要素が挿入されたように見えます。興味深い部分はクラス 'tooltip-inner'を持つコンテナです。

$('body').on('DOMNodeInserted', '.tooltip-inner', function() { 
     var el = $(this) 
     el.html("") // empty the tooltip element 
     el.append(generateSpecialMarkupElement(el.text())) // insert the generated markup element 
     replaceMarkupHTML() // replace the markup element with normal html 
}); 

残念ながら、それは動作しません。だから私は「.tooltip-インナー」を注入し、それが起こるたび、私はそれを操作しようとすることに一致する新しい要素のために体をリッスンしようとしました。それはちょうど百万のエラーを投げ、私はそれを試してみると、サイトがフリーズする。

編集2: クリス・バールのおかげで、私は少し近づけました:http://jsfiddle.net/8aqz5auk/2/
しかし、ツールチップが常に表示されないとツールチップの位置は、一種の間違っているようだ(上の現れ単語の上、下/上/下/ ...の順ではなく)。

+0

あなたが求めているのかどうかはわかりませんが... https://www.w3schools.com/bootstrap/bootstrap_tooltip.asp –

+0

それはまったくありません。 – Forivin

答えて

1

あなたはドキュメントに記載されているツールヒントのイベントに見たいと思うかもしれません:あなたは機能を実行することができますhttps://getbootstrap.com/docs/3.3/javascript/#tooltips-events

$('.elements-with-tooltips').on('show.bs.tooltip', function() { 
    // do something… 
}) 

:示されている前に、示された後、隠れた後、隠れ前、および要素DOMに挿入されます。

+0

時々仕事のように思えます。しかし、それは非常に信頼できないようです。 http://jsfiddle.net/8aqz5auk/2/私が間違っているかもしれない何かアイデア? – Forivin

+0

私は問題はあなたがツールチップを生成してから、それが表示される前に位置を決めようとしていることだと思うし、プラグインなしでツールチップ内のHTMLを手動で切り替えると、更新されません。あなたは技術的にうまくいっていますが、***非常にハッキーです。特に、ツールチップを正しく配置できないためです。また、あなたのデモでは、ブートストラップバージョン2.3.2を使用しているようですが、バージョン3.3.7は現在のものです - これは意図的ですか? –

+0

あなたのデモをブートストラップ3.3.7にアップデートすると、 'inserted.bs.tooltip'イベントを使用できるようになります。これにより、ツールチップがレンダリングされて配置される前に必要な変更が可能になります。ここであなたのデモはちょっときれいになっていて、意図どおりに動いています(しかし、まだまだ非常にハッキーです!)、そしてアップデートされたブートストラップです。 http://jsfiddle.net/8aqz5auk/4/ –

関連する問題