テキストのあるページがあり、テキストの一部の単語が動的に変更される可能性があります。これらの単語には要素があり、ツールチップが必要です。ユーザーが単語を移動すると(または、タッチデバイス上をクリックしていると推測される)、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/
しかし、ツールチップが常に表示されないとツールチップの位置は、一種の間違っているようだ(上の現れ単語の上、下/上/下/ ...の順ではなく)。
あなたが求めているのかどうかはわかりませんが... https://www.w3schools.com/bootstrap/bootstrap_tooltip.asp –
それはまったくありません。 – Forivin