2017-10-18 21 views
0

私はブートストラップツールチップを使用しています。ツールチップのhtmlを有効にして、title属性のhtmlスパンを使用できるようにしました。Boostrapツールチップを動的に更新する

スパンの値を動的に更新する際に問題が発生しています。

参照のデモ:https://jsfiddle.net/DTcHh/38497/

あなたがアップデートツールチップ]ボタンをクリックすると、ツールチップがに変更する必要があります。何が悪かったのか10 x 20

のjQuery:$('.update').on('click', function(){ $('[data-toggle="tooltip"]').attr('title', '10 x 20'); });

$(function() { 
    $('[data-toggle="tooltip"]').tooltip({ 
     html: true 
    }); 

    $('body').on('click', '.update', function() { 
     $('.a').text(10); 
     $('.b').text(20); 
    }); 
    }); 

HTML

<a href="#" data-toggle="tooltip" title="<span class='a'>2</span> x <span class='b'>5</span>"> 
    Hover Me 
</a> 

<button class="update">Update Tooltip</button> 
+1

問題は、jQueryのそれを見つけることができませんので、それは単なるテキストですが、ツールヒントのテキストはHTMLではないということです。 – DavidG

+0

@DavidGああ。可能な解決策で回答してください。 –

+0

[**これはあなたを助けるかもしれません!**](https://stackoverflow.com/a/9875490/3452741)、幸運:) –

答えて

2

.aおよび.bは、DOMの要素ではありません。あなたがツールチップにカーソルを置こうとしたときにのみ作成されます。

これを変更する代わりに、adata-original-titleを更新したテキストに変更してください。 EXのために

$('body').on('click', '.update', function() { 
     $("a").attr("data-original-title", "<span class='a'>10</span> x <span class='b'>20</span>"); 
}); 

Updated Fiddle

+0

私のケースでは全区間ブロックを書き換えることができません。たぶんdata-original-title文字列を取得してdomに変換し、 '$(dom).text(10);' –

+0

なぜそのスパンを得ることができないのか分かりますか?私は、あなたが提案しているアプローチがうまくいかないとは思っていません。 – void

+0

https://jsfiddle.net/DTcHh/38501/のようなものです。 –

-1

変更$('body').on('click',...

+0

Are Are確信してるの?回答を投稿する前にテストしました –

+0

@ I'll Be Back私は私の答えを固定しました。 :/ –

関連する問題