しばらくしてポップオーバーを隠したい。私はこれをコーディングしました-> [〜#〜] code [〜#〜] 仕事。
[〜#〜] js [〜#〜]
$('#qoo').popover({
placement : 'left',
html : true,
delay: {
show: 500,
hide: 100
},
content: function() {
return $('#content-wrapper1').html();
}
});
[〜#〜] html [〜#〜]
<div class="span1 offset1">
<a href="#" id="qoo" rel="popover" data-original-title="TITLEEEE" class="circle"> textttt</a>
<div id="content-wrapper1" class="content-wrapper"> texttttttat</div>
</div>
しかし、それは機能しません。
遅延表示/非表示は、ポップオーバーを自動的に表示/非表示にしません。遅延beforeを定義します。また、 遅延は手動トリガータイプには適用されません なので、hover
のようなトリガーが必要です。遅延を機能させるため。
$('#qoo').popover({
placement : 'right',
html : true,
trigger : 'hover', //<--- you need a trigger other than manual
delay: {
show: "500",
hide: "100"
},
content: function() {
return $('#content-wrapper1').html();
}
});
ただし、ポップオーバーを自動的に非表示にするには、shown.bs.popover
イベントにフックして次のようにします。
$('#qoo').on('shown.bs.popover', function() {
setTimeout(function() {
$('#qoo').popover('hide');
}, 1000);
});
上記は、1000ミリ秒、1秒後にポップオーバーを非表示にします。
私はあなたのコードを試しましたが、あなたのコードの問題は、ツールチップがボディ内にバインドされていないように見え、実際にはボディの外に出ていることです。したがって、要素のマージンを残しておくと、ツールチップを機能させることができます。正しく。これをみて :
HTML:
<div class="span1 offset1" style="margin:100px">
<a href="#" id="qoo" rel="popover" data-original-title="TITLEEEE" class="circle"> textttt</a>
<div id="content-wrapper1" class="content-wrapper"> texttttttat</div>
</div>
JS:
$('#qoo').popover({
placement : 'right',
html : true,
delay: {
show: 500,
hide: 500
},
content: function() {
return $('#content-wrapper1').html();
}
});
私の解決策:ポップオーバーは、ユーザーがリンクに一定時間カーソルを合わせたときにのみ開きます。
$('.popMonster').popover({
html: true,
trigger: 'manual',
delay: {
show: 100,
hide: 0
},
container: $(this).attr('id'),
placement: 'auto',
content: function () {
$return = '<div class="hover-hovercard"></div>';
}
}).on("mouseenter", function () {
var delay_ = (function(){
var timer_ = 0;
return function(callback, ms){
clearTimeout (timer_);
timer_ = setTimeout(callback, ms);
};
})();
var self = $(this), url = '/myurl/action';
delay(function(){
// Get content via ajax:
$.get(url, function(data) {
if(data == 'Unauthorized.'){
location.href = './';
}else{
self.attr('data-content', data);
self.popover("show");
}
});
}, 800 ); // time to wait before call ajax
self.siblings(".popover").on("mouseleave", function () {
self.popover('hide');
});
})