向 Shiny 中的禁用按钮添加工具提示?
Posted
技术标签:
【中文标题】向 Shiny 中的禁用按钮添加工具提示?【英文标题】:Adding tooltip to disabled button in Shiny? 【发布时间】:2016-11-07 18:23:27 【问题描述】:在 R/Shiny 中,我想添加一个 tooltip
来通知用户一个按钮被禁用,因为必填字段未完成。
我可以使用ShinyBS
包显示工具提示,但是当按钮被禁用时它似乎不起作用。下面是一个最小的工作示例。
是否有一个简单的修复方法可以让工具提示在 Shiny 中的禁用按钮上工作?
ui.R
library(shinyBS)
library(shiny)
library(shinyjs)
shinyUI(pageWithSidebar(
headerPanel("actionButton test"),
sidebarPanel(
numericInput("n", "N:", min = 0, max = 100, value = 50),
br(),
actionButton("goButton", "Disabled!"),
actionButton("goButton2", "Go!"),
bsTooltip("goButton", "Tooltip broken", placement = "bottom", trigger = "hover",
options = NULL),
bsTooltip("goButton2", "Tooltip works", placement = "bottom", trigger = "hover",
options = NULL)
),
mainPanel(useShinyjs(),
verbatimTextOutput("nText")
)
))
服务器.R
library(shiny)
library(shinyjs)
library(shinyBS)
shinyServer(function(input, output,session)
ntext <- eventReactive(input$goButton,
input$n
)
shinyjs::disable("goButton2")
output$nText <- renderText(
ntext()
)
)
【问题讨论】:
【参考方案1】:这是解决您的问题的一种方法,而是为您的按钮提供标题:
#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="Tooltip broken",actionButton("goButton", "Disabled!")),
tags$div(style="display:inline-block",title="Tooltip works",actionButton("goButton2", "Go!"))
),
mainPanel(useShinyjs(),
verbatimTextOutput("nText")
)
)
server <- shinyServer(function(input, output,session)
ntext <- eventReactive(input$goButton, input$n)
shinyjs::disable("goButton2")
output$nText <- renderText(ntext())
)
shinyApp(ui = ui, server = server)
【讨论】:
感谢您的解决方案 - 是我自己还是偶尔用这种方法显示工具提示的延迟? 是的,会有延迟,你可以用自定义JS
覆盖它,但我认为没有必要以上是关于向 Shiny 中的禁用按钮添加工具提示?的主要内容,如果未能解决你的问题,请参考以下文章