Javascript 引导:弹出按钮链接不工作

Javascript 引导:弹出按钮链接不工作,javascript,jquery,html,twitter-bootstrap,Javascript,Jquery,Html,Twitter Bootstrap,我已经将引导popover与一些定制的jquery一起使用。Popover功能工作正常,但是如果我添加了一个带有外部链接的按钮,它就不工作了。请参阅代码:有两个按钮“Button1”用于Popover,而“Button2”用于外部链接。 $(文档).ready(函数(){ $(“正文”)。工具提示({ 选择器:“[data toggle='tooltip']”, 容器:“主体” }) 波弗先生({ 选择器:“[data toggle='popover']”, 容器:“主体”, html:对 }

我已经将引导popover与一些定制的jquery一起使用。Popover功能工作正常,但是如果我添加了一个带有外部链接的按钮,它就不工作了。请参阅代码:有两个按钮“Button1”用于Popover,而“Button2”用于外部链接。

$(文档).ready(函数(){
$(“正文”)。工具提示({
选择器:“[data toggle='tooltip']”,
容器:“主体”
})
波弗先生({
选择器:“[data toggle='popover']”,
容器:“主体”,
html:对
});
});
$('body')。在('click',函数(e)上{
$('[data toggle=“popover”]')。每个(函数(){
如果(!$(此).is(如目标)&&
$(this).has(e.target).length==0&&
$('.popover').has(e.target.length==0){
$(this.popover('hide');
}
});
});

您缺少一些
数据切换
数据放置
语法在第二个按钮中!添加这些按钮将使第二个按钮具有与第一个按钮相同的功能。我已将此添加到您的代码中:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script type="text/javascript"> $(document).ready(function () {
        $("body").tooltip({
            selector: "[data-toggle='tooltip']",
            container: "body"
        })
                .popover({
                    selector: "[data-toggle='popover']",
                    container: "body",
                    html: true
                });
    });

    $('body').on('click', function (e) {
        $('[data-toggle="popover"]').each(function () {
            if(!$(this).is(e.target) &&
                    $(this).has(e.target).length === 0 &&
                    $('.popover').has(e.target).length === 0) {
                $(this).popover('hide');
            }
        });
    });</script>

<div class="container" style="width:400px; height:400px; background:#000;padding-top:50px;">
    <a data-placement="top" role="button" class="btn btn-danger" data-toggle="popover" data-content="Popover" data-original-title="" title="">
        Button1
    </a>

    <a class="btn btn-danger" href="http://facebook.com" data-placement="top" data-toggle="popover" data-content="Popover" data-original-title="" title="" target="_blank">Button2</a>
</div>

$(文档).ready(函数(){
$(“正文”)。工具提示({
选择器:“[data toggle='tooltip']”,
容器:“主体”
})
波弗先生({
选择器:“[data toggle='popover']”,
容器:“主体”,
html:对
});
});
$('body')。在('click',函数(e)上{
$('[data toggle=“popover”]')。每个(函数(){
如果(!$(此).is(如目标)&&
$(this).has(e.target).length==0&&
$('.popover').has(e.target.length==0){
$(this.popover('hide');
}
});
});

您缺少一些
数据切换
数据放置
语法在第二个按钮中!添加这些按钮将使第二个按钮具有与第一个按钮相同的功能。我已将此添加到您的代码中:

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script type="text/javascript"> $(document).ready(function () {
        $("body").tooltip({
            selector: "[data-toggle='tooltip']",
            container: "body"
        })
                .popover({
                    selector: "[data-toggle='popover']",
                    container: "body",
                    html: true
                });
    });

    $('body').on('click', function (e) {
        $('[data-toggle="popover"]').each(function () {
            if(!$(this).is(e.target) &&
                    $(this).has(e.target).length === 0 &&
                    $('.popover').has(e.target).length === 0) {
                $(this).popover('hide');
            }
        });
    });</script>

<div class="container" style="width:400px; height:400px; background:#000;padding-top:50px;">
    <a data-placement="top" role="button" class="btn btn-danger" data-toggle="popover" data-content="Popover" data-original-title="" title="">
        Button1
    </a>

    <a class="btn btn-danger" href="http://facebook.com" data-placement="top" data-toggle="popover" data-content="Popover" data-original-title="" title="" target="_blank">Button2</a>
</div>

$(文档).ready(函数(){
$(“正文”)。工具提示({
选择器:“[data toggle='tooltip']”,
容器:“主体”
})
波弗先生({
选择器:“[data toggle='popover']”,
容器:“主体”,
html:对
});
});
$('body')。在('click',函数(e)上{
$('[data toggle=“popover”]')。每个(函数(){
如果(!$(此).is(如目标)&&
$(this).has(e.target).length==0&&
$('.popover').has(e.target.length==0){
$(this.popover('hide');
}
});
});

堆栈溢出脚本阻止链接打开新页面/重定向。使用您的代码尝试此代码笔:


$(文档).ready(函数(){
$(“正文”)。工具提示({
选择器:“[data toggle='tooltip']”,
容器:“主体”
})
波弗先生({
选择器:“[data toggle='popover']”,
容器:“主体”,
html:对
});
});
$('body')。在('click',函数(e)上{
$('[data toggle=“popover”]')。每个(函数(){
如果(!$(此).is(如目标)&&
$(this).has(e.target).length==0&&
$('.popover').has(e.target.length==0){
$(this.popover('hide');
}
});
});

堆栈溢出脚本阻止链接打开新页面/重定向。使用您的代码尝试此代码笔:


$(文档).ready(函数(){
$(“正文”)。工具提示({
选择器:“[data toggle='tooltip']”,
容器:“主体”
})
波弗先生({
选择器:“[data toggle='popover']”,
容器:“主体”,
html:对
});
});
$('body')。在('click',函数(e)上{
$('[data toggle=“popover”]')。每个(函数(){
如果(!$(此).is(如目标)&&
$(this).has(e.target).length==0&&
$('.popover').has(e.target.length==0){
$(this.popover('hide');
}
});
});


您想在用户用鼠标浏览时显示弹出窗口还是在单击链接后显示弹出窗口?因为我得到了最后一个工作选择。它按照预期工作得很好。我登录了我的本地地址。你需要在点击第二个按钮时转到另一个URL吗?还是要在第二个按钮上打开相同的弹出窗口?就像第一个按钮一样?实际上,当我们点击身体上的任何地方时,这个jquery用于关闭popover。我需要一个按钮的弹出窗口和第二个按钮是采取其他网址(在一个新的窗口)。现在它可以在除iphone浏览器之外的所有浏览器上正常工作。@Samir请在iphone浏览器上检查它。您希望在用户用鼠标浏览它时或在单击链接后弹出窗口吗?因为我得到了最后一个工作选择。它按照预期工作得很好。我登录了我的本地地址。你需要在点击第二个按钮时转到另一个URL吗?还是要在第二个按钮上打开相同的弹出窗口?就像第一个按钮一样?实际上,当我们点击身体上的任何地方时,这个jquery用于关闭popover。我需要一个按钮的弹出窗口和第二个按钮是采取其他网址(在一个新的窗口)。现在它可以在除iphone浏览器之外的所有浏览器中正常工作。@Samir请在工具提示或简单链接?工具提示中与iphone浏览器一起检查它。当我们点击身体上的任何地方(仅在iphone浏览器中)工具提示或简单链接?工具提示时,它不会“消失”。当我们点击身体上的任何地方(仅在iphone浏览器中)时,它不会“解除”将两个按钮上的类更改为
class=“btn”
哪个按钮。这应该可以解决IOS safari的问题。浏览器不能很好地处理
btn[extra]
。因此,如果您同时使用这两个按钮,您的按钮也应该可以在Sarafi iOS上使用。按钮2上也不需要弹出窗口。您使用的是iOS 10吗?将两个按钮上的类更改为
class=“btn”
。这应该可以解决IOS safari的问题。浏览器不能很好地处理
btn[extra]
。因此,如果您将它们都设置为
class=“btn”