Gon*_*alo 17 javascript jquery popover twitter-bootstrap
我想在几秒钟后自动隐藏Bootstrap popovers.当用户将鼠标悬停在控件上时,必须显示弹出窗口,但如果用户未移动鼠标指针,则必须在几秒钟后自动隐藏此弹出窗口.
这是因为在手机或平板电脑,当用户点击一个控制时,会显示酥料饼是很重要的,而重点仍然是在用户键入的东西相同的控制,具有酥料饼阻碍它.
ish*_*ood 35
你真的应该尝试一下并在寻求帮助之前发布你的代码.这可行,但可能有一个更有效的方法:
$('.pop').popover().click(function () {
setTimeout(function () {
$('.pop').popover('hide');
}, 2000);
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<span class="pop" data-original-title="My popover" data-content="Isn't it great?">Click me</span>Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/isherwood/Bqq7C/27/
Adr*_*uez 17
接受的答案工作正常,但这是一个更自助的方法:
原始答案
$('.pop').on('shown.bs.popover', function () {
var $pop = $(this);
setTimeout(function () {
$pop.popover('hide');
}, 2000);
});
Run Code Online (Sandbox Code Playgroud)
从limplash更新
这个答案错过了一个关键信息!你必须在初始化popover时添加触发器选项.. {trigger:"manual"} ..否则bootstraps附加一个onclick事件,导致第一次使用后需要两次点击的问题..以下应该是一个建议的解决方案
$("#element").popover({ trigger:"manual" }).click(function() {
var pop = $(this);
pop.popover("show")
pop.on('shown.bs.popover',function() {
setTimeout(function() {
pop.popover("hide")}, 2200);
})
})
Run Code Online (Sandbox Code Playgroud)
您还可以将自己的新数据属性添加到弹出窗口中,如下所示:
$('[data-toggle="popover"][data-timeout]').on('shown.bs.popover', function() {
this_popover = $(this);
setTimeout(function () {
this_popover.popover('hide');
}, $(this).data("timeout"));
});
Run Code Online (Sandbox Code Playgroud)
现在你可以使用
<span
data-toggle="popover"
data-timeout="2000"
title="A title"
data-content="Some explanatory text">
Your text
</span>
Run Code Online (Sandbox Code Playgroud)
在显示您在数据超时中指定的毫秒数后,弹出窗口消失。
| 归档时间: |
|
| 查看次数: |
31310 次 |
| 最近记录: |