这有点小,但在 Shiny 应用程序中单击操作按钮(通常为浅灰色)后,它会变成深灰色,并且焦点仍保留在其上。用户必须单击其他位置才能使操作按钮恢复到正常的浅颜色。
在这里尝试一下:http://shiny.rstudio.com/gallery/actionbutton-demo.html
无法自动恢复为较浅的颜色意味着用户无法获得按钮已成功按下的视觉反馈。
有办法解决这个问题吗?
最佳答案
另一种方法是在进程运行时禁用该按钮,这也将防止人们在您等待结果时重新单击它。看一下 shinyjs
包,它有很多不错的功能。请注意,我添加了 2 秒延迟来模拟长时间操作。
rm(list=ls())
library(shinyBS)
library(shiny)
library(shinyjs)
ui <- pageWithSidebar(
headerPanel("actionButton test"),
sidebarPanel(numericInput("n", "N:", min = 0, max = 100, value = 50),
tags$div(style="display:inline-block",title="Push Me",bsButton("goButton", label = "Button", block = TRUE,style="primary"))
),
mainPanel(useShinyjs(),verbatimTextOutput("nText")
)
)
server <- shinyServer(function(input, output,session) {
ntext <- eventReactive(input$goButton, {
shinyjs::disable("goButton")
Sys.sleep(2)
shinyjs::enable("goButton")
input$n
})
output$nText <- renderText({ntext()})
})
shinyApp(ui = ui, server = server)
关于r - 单击后取消操作按钮的焦点( Shiny ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38214349/