特定navlistPanel

时间:2018-03-20 02:50:56

标签: r shiny

每一个,我想创建一个闪亮的应用程序,它可以禁用特定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'
                   )

它不再起作用了!所有选项卡都未禁用!所以任何人都可以帮我解决这个问题?非常感谢!

1 个答案:

答案 0 :(得分:0)

您不能同时使用data中的idselector参数,请参阅函数here的文档:

  

id 输入元素/ Shiny标签的ID

     

选择器查询选择器   目标要素。如果给出了id参数,则忽略。对于   例如,要禁用所有文本输入,请使用selector =   “输入[类型= '文本']”

但是,您可以将选择器更改为disable,因此它将禁用元素类'#inTabset1 li a'中所有元素类a的元素。 id li

这是一个有效的例子,我希望这有帮助!

inTabset1