我正在尝试根据用户所在的选项卡更改闪亮仪表板框的颜色。为此,我从 tabsetPanel 获取输入值,并尝试使用 shinyjs 更改 box-header 类的 css。不幸的是,我的试验都没有成功。这是一个可重现的示例(颜色尚未适应选项卡,但我将在第二部分中这样做)
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 之间的所有组合,但都失败了。