【发布时间】:2013-09-11 07:30:50
【问题描述】:
使用 hover 触发器显示弹出框效果很好。
使用 click 触发器显示弹出框效果很好。
现在,当触发图像悬停在上方时,如何让弹出框出现,但是如果用户单击图像,取消悬停并启动单击切换?换句话说,悬停显示弹出框并单击“固定”弹出框。
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事件,但是虽然它确实使'再次悬停'工作,它会杀死点击......
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)
});
【问题讨论】:
标签: javascript jquery twitter-bootstrap popover