当一个公共类的任何元素被点击在主体上时,我一直在尝试显示一个弹出窗口。问题是,弹出窗口最初不会出现在第一次单击时,但它会在下一次单击事件中显示并正常运行。这是我的代码:
HTML:
<button type="button" class="btn btn-info pop" data-container="body" data-toggle="popover" data-placement="top" data-content="Hello World! This is a test!"> Popover on top </button>
JavaScript的:
$('body').on('click', '.pop', function(e){
$(this).popover();//.popover('show');
});
它也可以在JSFiddle中找到。
我无法弄清楚这里有什么问题?有什么建议吗?
答案 0 :(得分:1)
功能代码为:
$( '.pop' ).popover();
在元素上初始化popover
会自动处理点击事件。您的代码等待第一次单击以初始化弹出行为,这意味着第二次单击是弹出窗口可以自行处理的第一次。
答案 1 :(得分:0)
答案 2 :(得分:0)
正确的方法是通过弹出窗口选项,正如您在bootstrap documentation
上看到的那样可能是这样的:
$('.pop').popover( { container: 'body', placement: 'top', trigger: 'click' } );
如您所见,您可以在此处指定多个选项,例如在哪里附加,展示位置或触发器。
请注意,您必须将其包含在文档就绪块中。
答案 3 :(得分:0)
你必须在显示之前调用destroy。以下代码将对你有用
$(document).on("click", ".pop", function(){
$(this).popover("destroy");
$(this).popover({
placement: 'top',
html: true,
title: "Popover Title",
content: "<strong>Popover Content</strong>"
});
$(this).popover("show");
});