私はこれをしようとしています:
$("a[rel=popover]").popover({
html: true,
trigger: 'hover',
content: '<img src="'+$(this).data('img')+'" />'
});
しかし、$(this).data( 'img')が機能しないため、機能しません。
なぜこれを行うのか、data-content属性にテンプレートとhtmlとの競合があります。そのため、イメージソースをdata-img属性に配置し、それをimg要素に配置したいと思います。
私はこれを試しましたが、完全に機能しません:
$("a[rel=popover_img]").popover({
html: true,
trigger: 'hover',
content: '<img src="#" id="popover_img" />'
}).hover(function(){
$('#popover_img').attr('src',$(this).data('img'));
});
誰かが私を助けてくれることを願っています:)
現在のところ、this
は現在のスコープを参照していますが、Popoverインスタンスがアタッチされている要素を参照する必要があります。これは、単純に関数のcontent
の式をラップすることで実行されます。
$('a[rel=popover]').popover({
html: true,
trigger: 'hover',
content: function () {
return '<img src="'+$(this).data('img') + '" />';
}
});
デモを見る:
Mervが提案したものの代わりに、簡単にするために、多くのjqueryプロパティをhtmlに埋め込み、jqueryを軽量化したままにすることができます。
<a href="#" data-toggle="popover" title="Popover Header" data-html="true" data-content="<img src='http://localhost:15249/img1.jpg' width='200' />">Toggle popover</a>
jquery経由でポップオーバーを呼び出します
$('["popover"]').popover()
このアプローチを使用する際の注意点は、data-htmlをtrueに設定する必要があります。そうしないと、画像はhtmlではなくテキストとして解釈されます
これを試して
[html]
<a href="#"><i class="menu-icon fa fa-picture-o fa-3x" data-rel="popover" title="<strong>Hi, I'm Popover</strong>" data-placement="top" data-content="<img src='https://www.google.co.id/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png' width=50% height=50%>"></i></a>
[javascript]
$(document).ready(function() {
$('[data-rel=popover]').popover({
html: true,
trigger: "hover"
});
})
[チェックアウト] https://jsfiddle.net/j4qptkzr/20/