引导手风琴如何检查哪个面板处于活动状态

Posted

技术标签:

【中文标题】引导手风琴如何检查哪个面板处于活动状态【英文标题】:bootstrap accordion how to check which panel is active 【发布时间】:2014-09-23 12:25:00 【问题描述】:

我正在使用 Bootstrap 的手风琴小部件来包含多个表单,即每个面板包含一个表单。选择最后一个面板时,来自其他面板的数据旨在发布,该数据将用于绘制数据。但是,我无法进入发布部分,因为我无法确定当前选择了哪个面板。我知道这与一类活动或非活动有关,但我认为引导程序的手风琴不像 jquery 手风琴那样支持该功能。

我试图弄清楚第一部分,即检查用户是否点击了最后一个面板。在我的 html 代码中,它的 ID 为#results。这是一个jsfiddle,它演示了我面临的问题。当用户点击#results标签时,它似乎没有触发第二个警报功能,不知道为什么。

示例 javascript 代码:

 $('#accordion').on('show.bs.collapse', function () 
    $('#results').click(function () 
        alert("works"); //testing purposes
    );
);

【问题讨论】:

bootstrap.js Accordion Active Index?的可能重复 【参考方案1】:
$('#accordion').on('show.bs.collapse', function (accordion) 
    var $activeCard = $(accordion.delegateTarget.children);
);

$('#accordion').on('show.bs.collapse', function () 
    var $activeCard = $(this.children);
);

【讨论】:

【参考方案2】:

这是一个旧线程,但我想发布一个答案,因为没有建议预期的结果。

这里你需要做的是用事件处理器来处理当前选中的折叠项。如果为此使用this 关键字,则可以访问所选对象的值(例如,仅表单中的一项)。

在这里您可以获取$(".collapse") 元素。 您可以使用$(this).parent().index() 获取活动项目的index 编号。 同样,您可以使用$(this).attr('id') 获取活动项目的id

您的 jQuery 结构将是:

$(".collapse").on('show.bs.collapse', function()

 //0,1,2,etc..
 var index = $(this).parent().index();
 
 //collapseOne, collapseTwo, etc..
 var id =  $(this).attr('id')
 
 //alert('Index: ' + index + '\nItem Id: ' + id );
 console.log('Index: ' + index)
 console.log('Item Id: ' + id)
  
 if(id === 'collapseFour')
 
        var username = $('#username').val();
        var email = $('#email').val();
        var age = $('#age').val();
        
    //here you can check the data from the form
    
        $("#result").html("<p> UserName: " + username + "</p> <p> EMail: " + email + "</p> <p> Age: " + age + "</p>");
 
);

我在这里为您提供了一个工作示例 (jsfiddle)。

【讨论】:

【参考方案3】:

这是你想要的吗?

小提琴: Demo

把这个放在 on 函数之外

 $('#results').click(function ()
        alert("clicked");
    );  

【讨论】:

【参考方案4】:

你为什么不这样做?

$('#results').click(function ()
    alert("clicked");
);   

只要去掉手风琴功能,就可以直接得到点击事件

【讨论】:

以上是关于引导手风琴如何检查哪个面板处于活动状态的主要内容,如果未能解决你的问题,请参考以下文章

引导面板边框未正确显示

Bootstrap 手风琴滚动到活动面板标题的顶部

嵌套引导折叠(手风琴)

当 div 显示/父级处于活动状态时,将 aria-hidden 切换为 false

仅向单击的手风琴面板添加或删除类

如何使用 React Hooks 单独切换手风琴面板?