当用户点击时,如何关闭Bootstrap弹出窗口(或任何项目)
How to close Bootstrap popovers (or any item in general) when a user clicks away from it?
我正在手动模式下使用Twitter Bootstrap库中的popover对象,我想知道当用户点击离开工具提示时,我应该如何关闭它。
这是我的HTML:
<a id="stats-bar" rel="popover" data-placement="top" data-trigger="manual" data-title="Title here" data-content="Hello everyone.">Test</a>
和我的JavaScript:
$('#stats-bar').click(function(e) {
$(this).popover('show');
});
当用户单击除popover本身之外的任何位置时,我如何隐藏popover?我曾想过在popover后面使用一个固定的透明div并设置其点击事件,但我不确定这是最好的方法。
我最终连接到文档点击事件,并在此时隐藏任何工具提示
$(document).click(function (e)
{
// check the parents to see if we are inside of a tool tip. If the click came
// from outside the tooltip, then hide our tooltip
if ($(e.target).parents('.tooltip').length == 0) $('[data-original-title]').tooltip('hide');
});
如果使用手动触发器选项并连接到单击事件以显示工具提示,则需要调用e.stopPropagation()以防止在显示工具提示时触发文档单击事件。
我选择在popover后面使用一个固定的透明div,并设置其点击事件,因为这似乎是最健壮、最简单的解决方案。
一个通用的点击事件监听器会触发你在身体内的点击位置吗?看看这篇文章,它看起来和你想要实现的目标很相似。
https://stackoverflow.com/a/2125122/1013422
你可以用它来关闭实际的弹出
$('#stats-bar').popover('hide')
我只会在弹出事件运行时定义该功能,然后在关闭弹出后将其删除,这样你就不会一直监听点击事件。
相关文章:
- 如何使用AngularJS在点击身体内部任何位置时显示弹出窗口
- 如果用户不关闭弹出窗口'没有提供任何回应
- IE窗口失去了对任何XMLHttpRequest启动Angular应用程序的关注
- jQuery-在窗口滚动上运行一个函数,没有任何延迟
- 确定是否在不使用任何全局变量的情况下加载了窗口
- JQuery / JS:检测用户的滚动尝试,没有任何窗口溢出滚动到
- 禁用任何类型的浏览器窗口滚动
- 除了屏幕之外,CSS 值是否有任何方法响应窗口宽度@media
- 我可以使用 JavaScript 或任何其他技术根据用户输入将焦点切换到窗口或选项卡上吗?
- Javascript的window.open函数在ajax请求之后避免任何弹出窗口阻止程序
- 当在窗口中的任何位置单击选择框时,如何获得选择框关闭事件
- 谷歌地图 3 :当任何标记点击相同的信息窗口打开
- 在页面完成加载后立即使用 jQuery 创建一个弹出窗口,而无需按下任何按钮
- 想要关闭弹出窗口并在控制器上执行 PHP 脚本后重定向到相应的页面,没有任何事件
- 在客户端JavaScript中,除了窗口之外的任何元素都可以获得调整大小事件
- 是否有任何方法可以检测IE8中该窗口当前处于活动状态
- 有没有办法在不渲染任何其他 js 文件的情况下在 rails 控制器方法中发出警报/弹出窗口
- 如何使用jquery/irame/或任何其他东西在domain-1上创建带有domain-2内容的弹出窗口
- 是否有任何方法/解决方法可以使用open方法“window.open”关闭JavaScript尚未打开的窗口
- 在谷歌地图上打开/排列所有信息窗口(任何API版本)