当前位置: 首页 > 知识库问答 >
问题:

我如何通过点击另一个按钮来切换所有的引导弹出?

尉迟墨竹
2023-03-14

我有一些引导弹出按钮:

<div class="bs-example tooltip-demo">
    <div class="bs-example-tooltips">
        <button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="top" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." data-original-title="" title="">Popover on top</button>

        <button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="bottom" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." data-original-title="" title="">Popover on bottom</button>

        <button type="button" class="btn btn-default" data-container="body" data-toggle="popover" data-placement="right" data-content="Vivamus sagittis lacus vel augue laoreet rutrum faucibus." data-original-title="" title="">Popover on right</button>
    </div>
</div>
<br><br>
   <button id="toggle" class="btn btn-default" >Toggle all</button>

下面是脚本:

$('[data-toggle="popover"]').popover();


$('#toggle').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('toggle');
        }
    });
});

$('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');
        }
    });
});

所以我想实现的是:

  • 通过单击弹出按钮本身:不执行任何操作(不弹出)
  • 单击全部切换全部切换弹出
  • 单击正文隐藏所有弹出窗口

在我的代码中,它不起作用,也许与隐藏和切换有冲突?

下面是小提琴:https://jsfidle.net/c5gbu/1421/

共有1个答案

彭存
2023-03-14

假设您只想通过最后一个按钮来切换页面上的所有弹出窗口,那么您需要做的就是:

$('#toggle').on('click', function() {
    $('[data-toggle="popover"]').popover('toggle');
});

此外,如果您单击任何不是弹出窗口的内容或切换弹出窗口的按钮,则此代码将隐藏所有弹出窗口:

$('html').on('mouseup', function(e) {
    if(typeof $(e.target).data('toggle') === "undefined" 
       && $(e.target).attr('id') != 'toggle') {
        $('[data-toggle="popover"]').popover('hide');
    }
});

您的小提琴已更新:https://jsfidle.net/c5gbu/1426/

 类似资料:
  • 我们能不能让popover像情态动词一样被解雇。当用户单击它们之外的某个地方时关闭它们? 不幸的是,我不能只使用真实的模态而不是popover,因为模态意味着位置:固定的,那将不再是popover。:(

  • 问题内容: 以下是我的javascript代码,我曾经在单击时显示。 再次单击该如何隐藏?然后单击它,是否应该再次可见? 问题答案: 如果您对jQuery解决方案感兴趣: 这是HTML 这是jQuery脚本 您可以在这里看到它的工作方式: 如果您不知道如何使用jQuery,则必须使用以下代码来加载库: 然后使用此行开始: 因此,在这种情况下,最终代码如下:

  • 所以假设我有一个“开”和一个“关”按钮。当我按下打开按钮时,我希望打开按钮隐藏自己,关闭按钮显示出来,反之亦然。 一个人怎么能这么做?

  • 我正在使用RecycerView构建一个切换按钮列表(如numpad),我希望实现: 当用户通过单击某个按钮“打开”该按钮时,将“关闭”所有其他按钮 我尝试在视图holder类中添加,并调用,这样就可以调用,然后更改按钮的状态。 维埃霍尔德 我的adpater类中的onBindViewHolder()

  • 我想创建一个下拉列表和一个按钮,功能是当我点击按钮,然后按钮不是可点击的意思是禁用,它是显示,首先点击下拉列表。然后按钮是启用的。我们如何使我尝试但没有发生,我没有太多的想法。所以任何机构帮助我解决这个问题。 我试过这个jquery函数我对jquery不太了解。所以谁来帮帮我。

  • 在React.js中,我在中有页面链接菜单和3个切换按钮。 单击时,所有切换按钮都有层。 我想做的是。。。 当单击切换按钮时,必须删除其他切换按钮和图层。类别 当单击页面链接菜单(menu1、menu2、menu3)时,所有切换按钮和层都必须被删除 我需要什么来更改代码? 这就是我目前为止所尝试的。 请帮忙。 演示:https://codesandbox.io/s/49io4 header.js