-1

ユーザーがいるタブに応じて、shinydashboard ボックスの色を変更しようとしています。そのために、tabsetPanel から入力値を取得し、shinyjs を使用して box-header クラスの css を変更しようとしています。残念ながら、私の試みはどれも成功していません。再現可能な例を次に示します (色はまだタブに適応していませんが、2 番目の部分でそれを行います)。

library(shiny)
ui <- fluidPage(
  shinyWidgets::useShinydashboard(),
  tabsetPanel(
    id = "mytab",
    tabPanel("First",
             shinydashboard::box(status = "primary",
                                 title = "mybox",
                                 solidHeader = TRUE, collapsible = TRUE,
                                 sliderInput("orders", "Orders", min = 1, max = 2000, value = 650)
                                 )),
  tabPanel("Second", p("Second tab"))))

server <- function(input, output) {
  observeEvent(input$mytab,{
    shinyjs::runjs("$('.box-header').css('background', 'red');")
    shinyjs::runjs("$('.box.box-solid.box-primary > .box-header').attr('style', 'background:red !important');")
  })
}
shinyApp(ui = ui, server = server)

runjs への最初の呼び出しと 2 番目の呼び出しの間のすべての組み合わせを試しましたが、すべて失敗しました。

4

2 に答える 2