每一个,我想创建一个闪亮的应用程序,它可以禁用特定navlistPanel中的表,按照我的代码,可以取消navlistPanel中的所有选项卡:
ui <- fluidPage(
useShinyjs(),
navlistPanel(id = "inTabset1",
tabPanel(title = "Panel 1", value = "panel1",
actionButton('jumpToP2', 'Jump to Second Tab')),
tabPanel(title = "Panel 2", value = "panel2",
actionButton('jumpToP1', 'Jump to First Tab'))
# tags$head(tags$style(HTML('.navbar-nav a {cursor: default}')))),
navlistPanel(id = "inTabset2",
tabPanel(title = "Panel 3", value = "panel3",
actionButton('jumpToP3', 'Jump to fouth Tab')),
tabPanel(title = "Panel 4", value = "panel4",
actionButton('jumpToP4', 'Jump to third Tab'))
# tags$head(tags$style(HTML('.navbar-nav a {cursor: default}')))))
server <- function(input, output, session) {
# shinyjs::disable(selector = '.navbar-nav a'
shinyjs::disable(
# id = "inTabset1",
selector = '.nav li a'
)
observeEvent(input$jumpToP2, {
updateTabsetPanel(session, "inTabset1",
selected = "panel2")
})
observeEvent(input$jumpToP1, {
updateTabsetPanel(session, "inTabset1",
selected = "panel1")
})
observeEvent(input$jumpToP3, {
updateTabsetPanel(session, "inTabset2",
selected = "panel4")
})
observeEvent(input$jumpToP4, {
updateTabsetPanel(session, "inTabset2",
selected = "panel3")
})}
shinyApp(ui, server)
这些代码可以禁用两个navlistPanle中的所有选项卡。但是,当我只想禁用第一个navlistPanel,inTabset1中的选项卡时,我将id添加到禁用功能中,如下所示:
shinyjs::disable(
id = "inTabset1",
selector = '.nav li a'
)
它不再起作用了!所有选项卡都未禁用!所以任何人都可以帮我解决这个问题?非常感谢!
答案 0 :(得分:0)
您不能同时使用data
中的id
和selector
参数,请参阅函数here的文档:
id 输入元素/ Shiny标签的ID
选择器查询选择器 目标要素。如果给出了id参数,则忽略。对于 例如,要禁用所有文本输入,请使用selector = “输入[类型= '文本']”
但是,您可以将选择器更改为disable
,因此它将禁用元素类'#inTabset1 li a'
中所有元素类a
的元素。 id li
。
这是一个有效的例子,我希望这有帮助!
inTabset1