如何关闭弹出式窗口中的按钮的自举弹出窗口?
我做了一个jsFiddle,我在图标上使用twitter引导弹出窗口功能。如何关闭弹出式窗口中的按钮的自举弹出窗口?
<div style="margin-top:200px">
<ul>
<li class="in-row">
<a href="#" id="meddelanden" data-title="Meddelanden" data-toggle="clickover"
data-placement="right"><i class="icon-globe"></i></a>
</li>
</ul>
</div>
的jQuery:
var elem = '<div class="well"><a href="google.com">Message one, From someone.</a></div>'+
'<div class="well"><a href="google.com">Message one, From someone.</a></div>'+
'<button id="close-popover" class="btn btn-small btn-primary pull-right">Close please!</button>';
$('#meddelanden').popover({animation:true, content:elem, html:true});
我似乎并没有能够与它里面的按钮关闭酥料饼。我试图对id“close-popover”做一个jquery点击函数,但注意到会发生。 (我没有包括我试图在jsfiddle中关闭它)
对于如何使用弹出窗口中的按钮关闭弹窗的任何建议?
问候, 比尔
试试这个: - http://jsfiddle.net/6hkkk/
var elem = '<div class="well"><a href="google.com">Message one, From someone.</a></div>'+
'<div class="well"><a href="google.com">Message one, From someone.</a></div>'+
'<button id="close-popover" data-toggle="clickover" class="btn btn-small btn-primary pull-right" onclick="$("#meddelanden").popover("hide");">Close please!</button>';
$('#meddelanden').popover({animation:true, content:elem, html:true});
试试这个:
<input type="button" onclick="$(this).parent().hide();" value="close">
通过传递$(这)你引用按钮和父引用按钮坐在
我编辑..有语法错误..这应该通过关闭按钮的父元素 – 2013-04-25 23:58:40
不幸的是,并没有这样做。它并没有关闭所有的弹出窗口(只有它是父窗口,而不是头部等)。你也不能回弹,再次点击图标。 – 2013-04-26 00:11:17
dam我没有看到你的jfiddle链接 但是.. $('#meddelanden')。popover('hide');是要走的路.. 你应该接受jon__o作为答案 – 2013-04-26 04:15:17
元素如何一点点onclick:
<button onclick="$('#meddelanden').popover('hide');" class="btn btn-small btn-primary pull-right">Close please!</button>
或者功能如何离子:
<button onclick="close_please();" class="btn btn-small btn-primary pull-right">Close please!</button>
与...
function close_please() {
$('#meddelanden').popover('hide');
}
或者它已经被创建后绑定到按钮如何。
$('#meddelanden').popover({animation:true, content:elem, html:true});
$('#close-popover').bind('click', function(){
$('#meddelanden').popover('hide');
});
在您的标题酥料饼的构造将这个......
'<button class="btn btn-danger btn-xs pull-right"
onclick="$(this).parent().parent().parent().hide()"><span class="glyphicon
glyphicon-remove"></span></button>some text'
...得到一个红色的小 'X' 顶部按钮右角
//$('[data-toggle=popover]').popover({title:that string here})
我给相同的答案https://stackoverflow.com/a/23556160/3603692 我希望这是允许的。
这确实隐藏了弹出窗口,但没有正确设置它的新状态,所以再次点击触发按钮不会显示弹出窗口(我想它会重新隐藏它),您必须单击两次以获取回弹,这不是真的可以接受。 – youen 2015-01-23 08:59:35
前面的例子有两个主要缺点:
- 以某种方式“关闭”按钮的需要,要知道被引用的元素的ID的。
- 需要在'shown.bs.popover'事件上添加关闭按钮的'click'侦听器;这也不是一个好的解决方案,因为每次显示“弹出窗口”时,您都会添加这样的侦听器。
下面是一个没有这种缺点的解决方案。
默认情况下,'popover'元素被插入到DOM中被引用的元素之后(然后注意被引用元素和popover是直接的兄弟元素)。因此,当点击'close'按钮时,您可以简单地查找最接近的'div.popover'父级,然后查找此父级的前一个兄弟元素。
只需添加以下代码“关闭按钮的 'onClick' 处理程序:
$(this).closest('div.popover').prev().popover('hide');
例子:
var genericCloseBtnHtml = '<button onclick="$(this).closest(\'div.popover\').prev().popover(\'hide\');" type="button" class="close" aria-hidden="true">×</button>';
$loginForm.popover({
placement: 'auto left',
trigger: 'manual',
html: true,
title: 'Alert' + genericCloseBtnHtml,
content: 'invalid email and/or password'
});
据我所知,如果您设置数据容器,以便弹出不在其触发按钮旁边(在我的情况下,我设置data-container =“body”以使其显示在触发容器的上方)。有没有办法在所有情况下实际检索popover? – youen 2015-01-23 08:54:48
替代不会对点击呼叫功能:
Javascript
var $popoverParent = $('.popover-parent').popover();
//allow to close when close button clicked
//register listener before popover shown
$popoverParent.on('shown.bs.popover', function()
{
//get the actual shown popover
var $popover = $(this).data('bs.popover').tip();
//find the close button
var $closeButton = $popover.find('.close-btn');
$closeButton.click(function(){
$popoverParent.popover('hide');
});
});
//show your popover
$popoverParent.popover('show');
我在我的网站上有很多popovers,他们都有相同的自定义标题栏,所以他们都有相同的关闭按钮。因此,我无法将ID传递给onclick处理程序。相反,我决定搜索公开的popover(一次只能打开一个),然后关闭它。
function closeMe() {
$(document).find('.popoverIsOpen').popover('hide');
}
谢谢!这工作像一个魅力,而没有其他建议做。我非常感谢你的帮助! /比尔 – 2013-04-26 04:19:36
没问题,我很高兴它有一些帮助解决您的问题... :) – PSL 2013-04-26 04:20:19
更好的方法是将类“关闭”添加到按钮,并添加此处理程序进行关闭操作: $ (document).on(“click”,“.popover .close”,function(){$(this).parents(“。popover”)。popover('hide');}); – 2017-11-08 07:12:49