Jquery Twitter Bootstrap弹出工具提示,一次只允许一个弹出实例
Jquery Twitter Bootstrap popup tooltip, allow only 1 instance of popup at a time
我有这样的HTML代码:
<table class="bag">
<tr>
<td id='slot0' item-type="" item-id="">
<a href="#" id="tool1" rel="popover" data-content="cont" data-original-title="ti-ta" data-animation="false">
<div class="bag-trigger"><tag style="z-index:10" id='tag0' class="hidden"></tag></div>
</a>
</td>
<td id='slot1' item-type="" item-id="">
<a href="#" id="tool2" rel="popover" data-content="cont" data-original-title="ti-ta">
<div class="bag-trigger">
<tag id='tag1' class="hidden"></tag>
</div>
</a>
</td>
<td id='slot2' item-type="" item-id="">
<a href="#" id="tool3" rel="popover" data-content="cont" data-original-title="ti-ta">
<div class="bag-trigger"><tag id='tag2' class="hidden"></tag></div>
</a>
</td>
<td id='slot3' item-type="" item-id="">
<a href="#" id="tool4" rel="popover" data-content="cont" data-original-title="ti-ta">
<div class="bag-trigger"><tag id='tag3' class="hidden"></tag></div>
</a>
</td>
</tr>
</table>
这是我的jQuery代码:
<script>
$(function () {
for (var i = 1; i <= 16; i++) {
$("#tool"+i).popover({animation:'false'});
$("#tool"+i).popover({placement:'top'});
$("#tool"+i).popover({trigger: 'hover'});
};
});
</script>
我的问题是,我可以打开同时弹出在我不想要的时间。如果我一次单击2个弹出窗口而不关闭它们,我如何关闭其他弹出窗口?
隐藏其他弹出窗口
你的弹出窗口触发悬停,所以你需要绑定隐藏函数到其他弹出窗口在鼠标悬停事件,像这样:
1) With ID selector(^ -以;所有ID以关键字"test"开头的元素):
$("[id^='test']").mouseover(function () {
$("[id^='test']").not(this).popover('hide');
});
如果你有几个弹出窗口组,例如:testX (X - 1,2,3…)和headerX (X - 1,2,3…),并且你想在特定组中只激活一个弹出窗口,这是很好的。
2)使用REL选择器(所有REL属性等于"popover"的元素):
$("[rel='popover']").mouseover(function () {
$("[rel='popover']").not(this).popover('hide');
});
<<p> 弹窗初始化/strong> 不要使用for loop来初始化html元素上的弹出窗口。像这样使用JQuery选择器:
1) ID选择器
$("[id^='test']").popover(
{trigger:'hover',animation:'false',placement:'top'}
);
2) REL选择器
$("[rel='popover']").popover(
{trigger:'hover',animation:'false',placement:'top'}
);
你可以像这样一次设置所有的弹出窗口。一次只能激活一个。
$('[rel*=popover]').popover({trigger:'hover',animation:'false',placement:'top'});
$('[rel*=popover]').click(function () {
$('[rel*=popover]').not(this).popover('hide');
});
<script>
$(function () {
for (var i = 1; i <= 16; i++) {
$("#tool"+i).popover({animation:'false'});
$("#tool"+i).popover({placement:'top'});
$("#tool"+i).popover({trigger: 'hover'});
$("#tool"+i).mouseout(function(){$(this).hide()});
};
});
</script>
另一种方法是将trigger设置为'manual',并处理一个单独的onclick/mouseover事件来处理工具提示的显示/隐藏。通过这种方式,您可以更好地控制单击事件。
$('[rel*=popover]').popover({trigger:'manual',animation:'false',placement:'top'});
$('[rel*=popover]').click(function () {
$('[rel*=popover]').popover('hide');
$(this).popover('show');
});
或
$('[rel*=popover]').popover({trigger:'manual',animation:'false',placement:'top'});
$('[rel*=popover]').mouseover(function () {
$('[rel*=popover]').popover('hide');
$(this).popover('show');
});
$('[rel*=popover]').mouseout(function () {
$('[rel*=popover]').popover('hide');
});
希望有帮助!!
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 引导程序崩溃一次只能看到一个
- 只为构造函数的所有实例触发一次事件侦听器
- 为下一次实例化设置的主干视图属性
- 如何将 url (http://example.com) 的一个实例限制为仅在客户端打开一次
- 如果有多个实例,则执行一次方法
- 为什么函数实例的绑定会为下一次计算提供原始值
- Jquery Twitter Bootstrap弹出工具提示,一次只允许一个弹出实例
- 有没有一种方法可以让一个CSS类的实例出现在多个元素上,但一次只能出现一个元素?
- 当一次将事件绑定到多个元素时,每个元素都有新的实例
- 如何使这个点击实例只发生一次,并可访问的所有内容
- 一次将所有对象从一个实例复制到另一个实例
- 请确保特定的setInterval函数实例只运行一次
- 防止同一函数的实例,如果加载一次jquery