gpt4 book ai didi

twitter-bootstrap - Bootstrap 选项卡在单击时关闭

转载 作者:行者123 更新时间:2023-12-04 04:50:38 25 4
gpt4 key购买 nike

我有以下代码:

<div id="action_wrap">
<div id="action_nav">
<div class="action" data-target="#content1" data-toggle="tab">First Block</div>
<div class="action" data-target="#content2" data-toggle="tab">Second Block</div>
<div class="action" data-target="#content3" data-toggle="tab">Third Block</div>
</div>
<div id="action_items">
<div class="action_text collapse" id="content1">
<p>Content 1</p>
<span class="close">Close</span>
<div class="clearfix"></div>
</div>
<div class="action_text collapse" id="content2">
<p>Content 2</p>
<span class="close">Close</span>
<div class="clearfix"></div>
</div>
<div class="action_text collapse" id="content3">
<p>Content 3</p>
<span class="close">Close</span>
<div class="clearfix"></div>
</div>
</div>
</div>

并使用 Twitter Boostrap's "Tab" script ,它工作正常。我为关闭按钮和导航按钮添加了一些非常讨厌的脚本来获取事件类,如下所示:
$(".action").click(function () {
$(this).parent().children().removeClass("active");
$(this).addClass("active");
$(this).parent().addClass("active");
});

$(".close").click(function () {
$(this).parent().parent().parent().children().removeClass("active");
$(this).parent().parent().parent().children().children().removeClass("active");
});

这并不多,但嗯,它正在起作用。

我不能做的是通过单击事件导航 div 使 Bootstrap 的 Tab 可关闭。
这意味着如果我在#content1 上单击第一个带有数据目标的 .action div,.action_text#content1 将获得 .active 类,我单击的 .action div 也会如此。而我想要的是 .action.active data-target="#content1"单击删除 .tab() 的类“active”并且本身相同。

我在另一个线程中发现从 Bootstrap 的 Tab 脚本更改代码
$(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
e.preventDefault()
$(this).tab('show')
})

但似乎每次我编辑它时,它都会破坏整个事情。我试着像这样添加 if 语句
  $(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
if ($(this).hasClass('active')) {
$(this).tab().removeClass('active');
$(this).removeClass('active');
} else {
e.preventDefault()
$(this).tab('show')
}
})

但整件事都停止了。

最佳答案

首先,您应该尽量避免更改 Bootstrap native 代码,否则您可能会失去升级到 future 版本的能力。

关于您的问题,您可能和我一样遇到了一些事件并发问题...

如果要在单击选项卡切换时关闭事件选项卡,请查看此处:
http://bootply.com/61835 (感谢凯蒂,我不是这个脚本的所有者)

但是,如果您希望能够在以下情况下关闭事件选项卡(切换和 Pane ):

  • 单击事件选项卡切换
  • 单击选项卡切换或 Pane 之外的任何其他位置
  • 按 ESC 键

  • ...那么这个脚本可以帮助你:

    $(function() {

    var active = $('a[data-toggle="tab"]').parents('.active').length;
    var tabClicked = false;

    // Closes current active tab (toggle and pane):
    var close = function() {
    $('a[data-toggle="tab"]').parent().removeClass('active');
    $('.tab-pane.active').removeClass('active');
    active = null;
    }

    // Closing active tab when clicking on toggle:
    $('[data-toggle=tab]').click(function(){
    if ($(this).parent().hasClass('active')){
    $($(this).attr("href")).toggleClass('active');
    active = null;
    } else {
    tabClicked = true;
    active = this;
    }
    });

    // Closing active tab when clicking outside tab context (toggle and pane):
    $(document).on('click.bs.tab.data-api', function(event) {
    if(active && !tabClicked && !$(event.target).closest('.tab-pane.active').length) {
    close();
    }

    tabClicked = false;
    });

    // Closing active tab on ESC key release:
    $(document).keyup(function(e){
    if(active && e.keyCode === 27) { // ESC
    close();
    }
    });
    });

    你可以用这个 JSFiddle 试试:
    http://jsfiddle.net/almeidap/EAuUY/ (使用 Bootstrap 3)

    关于twitter-bootstrap - Bootstrap 选项卡在单击时关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17507626/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com