【问题标题】:Adding tooltip to disabled button in Shiny?向 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()
})
})

【问题讨论】:

    标签: r shiny shinyjs shinybs


    【解决方案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 覆盖它,但我认为没有必要
    猜你喜欢
    • 1970-01-01
    • 2017-02-28
    • 1970-01-01
    • 2023-01-22
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    • 2015-07-16
    • 1970-01-01
    相关资源
    最近更新 更多