我一直在使用shinyBS
来创建一组可折叠面板。在下图中,一次只能打开一个面板(因为参数multiple
默认为FALSE
),但三个面板都可以同时打开。
ui.R
library(shiny)
library(shinyBS)
shinyUI(fluidPage(
bsCollapse(
id = "stuff.all",
bsCollapsePanel(title = "Load Data", "Load the files"),
bsCollapsePanel(title = "Set Parameters", "Set the parameters"),
bsCollapsePanel(title = "Teacher Settings", "Choose the teachers")
)
))
服务器.R
library(shiny)
library(shinyBS)
shinyServer(function(input, output) {})
是什么导致这个bsCollapse
表现得像multiple = TRUE
,我如何在将来防止它?参考:https://ebailey78.github.io/shinyBS/docs/Collapses.html
事实上,我是在写这个问题的时候弄明白的,所以我计划回答我自己的问题。
在我的例子中,bsCollapse
的id
是"stuff.all"。句点是id
的一部分这一事实似乎是造成问题的原因。当我把id
改为"stuff"时,问题就消失了。当id
是"stuff.al"或"stuff-a"时,问题仍然存在。当id
为"stuff."或".stuff"时,单击时没有任何面板展开。考虑到bsCollapse
的工作方式,问题要么是由于HTML <div>
标签的id
中有一个周期,比如
<div class="panel-group sbs-panel-group" data-sbs-multi="FALSE" id="stuff.a" role="tablist">
或者在HTML <a>
标签的data-toggle
中具有周期,如
<a data-toggle="collapse" href="#cpanel0758223" data-parent="#stuff.a">Load Data</a>