我已经制作了jsFiddle,我在图标上使用了twitter bootstrap popover函数。
<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 click函数,但是注意到了。 (我没有把我在jsfiddle中关闭它的尝试包括在内)
有关如何使用弹出框内的按钮关闭弹出窗口的任何建议吗?
此致 比尔
答案 0 :(得分:8)
试试这个: - 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});
答案 1 :(得分:3)
如果只是一点点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');
});
答案 2 :(得分:2)
以前的示例有两个主要缺点:
以下是一个没有这些缺点的解决方案。
默认情况下,'popover'元素紧接在DOM中的referenced-element之后插入(然后注意引用的元素和popover是直接的兄弟元素)。因此,当单击“关闭”按钮时,您可以简单地查找其最接近的“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'
});
答案 3 :(得分:0)
试试这个:
<input type="button" onclick="$(this).parent().hide();" value="close">
通过传递$(this)引用按钮,父对象引用按钮所在的元素
答案 4 :(得分:0)
将它放在标题popover构造函数中......
'<button class="btn btn-danger btn-xs pull-right"
onclick="$(this).parent().parent().parent().hide()"><span class="glyphicon
glyphicon-remove"></span></button>some text'
...得到一个小红色&#39; x&#39;右上角的按钮
//$('[data-toggle=popover]').popover({title:that string here})
我给出相同的答案https://stackoverflow.com/a/23556160/3603692 我希望这是允许的。
答案 5 :(得分:0)
替代方案没有在点击时调用函数:
的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');
答案 6 :(得分:-1)
我的网站上有很多弹出窗口,它们都有相同的自定义标题栏,所以它们都有相同的关闭按钮。因此,我无法将ID传递给onclick处理程序。相反,我决定搜索打开的popover(一次只能打开一个),然后关闭它。
function closeMe() {
$( document ).find('.popoverIsOpen').popover( 'hide' );
}