我有一个已绑定到弹出窗口的按钮。当有人点击popover中的一个表情符号时,我想隐藏popover。但是,$("#smiley").popover('hide')
不起作用。
不幸的是,我无法使用准系统代码重现这一点 - 它只发生在实时网站上,https://coinchat.org
相关代码:
$("#smiley").popover({html: true, trigger: 'click', placement: 'top', content: smileyContent, title: 'Smilies'});
稍后在一个函数..
$("#smiley").popover('hide'); // not working
答案 0 :(得分:8)
在https://inputs.io/js/buttons.js中,jQuery插件jQuery.fn.popover
会在某种加载事件上被覆盖,因此此时$("#smiley").popover("hide")
不再调用引导程序,而是由{{1}提供的插件}}
代码片段:
inputs.io
对于特定于应用程序的代码使用jQuery插件名称空间确实非常令人反感。
临时修复可能是Inputsio.load = function(){
(function(){(function(e){return e.fn.popover=function(t)
答案 1 :(得分:2)
这是一个与你的代码“相似”的工作小提琴
HTML
<div style="margin-top:100px">
<span id="smiley" data-title="smile" data-toggle="clickover">
<i class="icon-comment"></i>
</span>
</div>
的javascript
ClosePop = function () {
$('#smiley').popover('hide');
}
var elem = '<button data-toggle="clickover" class="btn" onclick="ClosePop();"><i class="icon-off"></i></button>';
$('#smiley').popover({
animation: true,
content: elem,
html: true
});
答案 2 :(得分:1)
替换
$("#smiley").popover('hide');
与
$("#smiley").click();
在控制台中为我工作。
答案 3 :(得分:0)
尝试从
移动id="smiley"
<span class="btn tenpx smileypopover popover-trigger" id="smiley" data-original-title="" title="">
到
<div class="popover fade top in" style="top: 430px; left: 308.5px; display: block;">
答案 4 :(得分:0)
这样的事情是不可能的吗?
$('#smileylist a').click(function(){
if($('.popover').css('display','block')){
$(this).css('display','none');
}
});
$('.smileypopover').click(function(){
if ($('.popover').css('display','none')){
$(this).css('display','block');
}
});
当我点击笑脸时它会关闭弹出窗口,然后我再次打开它,直到我运行第二块代码。它非常接近,但我不确定我到底错过了什么。
答案 5 :(得分:0)
如果您的弹出框选项中有选择器属性(例如,动态HTML内容通常需要),请务必在调用“隐藏”方法时使用相同的选择器。
以下内容无法隐藏弹出框(对于添加到DOM的新内容)。
//enable popover
$(document).popover({
html: true,
selector: "[data-popover]"
});
//attempt to hide popover
$(document).popover('hide');
相反,请使用:
//enable popover
$(document).popover({
html: true,
selector: "[data-popover]"
});
// hide popover
$('[data-popover]').popover('hide');
答案 6 :(得分:0)
Bootstrap 无法独立访问弹出窗口 ID。我们必须读取与元素相关的 aria-describedby 属性。
下面的代码可以解决您的问题:
$("#"+$(relatedElementId).attr("aria-describedby")).remove();
relatedElementId:popover 的关联元素
答案 7 :(得分:-1)
在addSmiley
功能中,您可以替换
$("#smiley").popover('hide');
带
$(".popover").hide();
它会起作用,但不知道它对你是否合适。