使用悬停触发器使弹出框出现效果很好。
使用单击触发器使弹出框出现效果很好。
现在,当触发图像悬停在上方时,如何使弹出框出现,但是如果用户单击图像,取消悬停并启动单击切换?换句话说,悬停显示弹出框并单击“固定”弹出框。
HTML 非常标准:
<li>User<span class="glyphicon glyphicon-user" rel="popover" data-trigger="click" data-container="body" data-placement="auto left" data-content="Body Text" data-original-title="Title Text"></span></li>
而popover初始化,就更无聊了:
$(function () {
$("[rel=popover]").popover();
});
从我目前看到的情况来看,解决方案似乎很可能是一组很好的复杂的popover('show')
,popover('hide')
和popover('toggle')
调用,但我的 javascript / jQuery-foo 不能胜任这项任务。
编辑:
使用@hajpoj提供的代码作为基础,我添加了一个函数来监听hidden.bs.popover
事件,以尝试在触发click事件后重新启用mouseenter和mouseleave事件,但是虽然它确实使'hover'再次起作用,但它杀死点击...
var $btn2 = $('#btn2');
var enterShow = function() {
$btn2.popover('show');
};
var exitHide = function() {
$btn2.popover('hide');
}
$btn2.popover({trigger: 'manual'})
.on('mouseenter', enterShow)
.on('mouseleave', exitHide)
.one('click', function() {
$btn2.off('mouseenter', enterShow)
.off('mouseleave', exitHide)
.on('click', function() {
$btn2.popover('toggle');
});
});
$('#btn2').on('hidden.bs.popover', function () {
$btn2.on('mouseenter', enterShow)
.on('mouseleave', exitHide)
});