2016-01-24 75 views
1

我嘗試使用shinyBS包進入我的簡單應用程序。我想要做的是創建反應性工具提示文本取決於每個radioButton。使用ShinyBS閃亮反應性工具提示框

爲了闡明我的問題,我在HTML & JS中寫了一個簡單的代碼。

我還發現一個solution似乎解決了我的問題,但實際上我認爲它不能正常工作。是否可以使用shinyBS包來完成?

我也想實現我的HTML代碼到Shiny中,但仍然不起作用。

library(shiny) 

yourStr <- "$(document).ready(function(){ 
         $('[id='radio_venue_1']').tooltip({ 
           placement: 'right', 
           title: 'Button 1 Explanation', 
           trigger: 'hover' 
           }); 

         $('[id='radio_venue_2']').tooltip({ 
           placement: 'right', 
           title: 'Button 2 Explanation', 
           trigger: 'hover' 
           }); 

         $('[id='radio_venue_3']').tooltip({ 
           placement: 'right', 
           title: 'Button 3 Explanation', 
           trigger: 'hover' 
           }); 
           }); 
" 

ui <- shinyUI(

    fluidPage(
    fluidRow(
     column(3, 
      HTML("<div class='container'><br> 
        <h1>Test</h1> 
        <div> 
        <label id='radio_venue_1'> 
        <input type='radio' value='1' role='button'> button 1 
        </label> 
        </div> 
        <div> 
        <label id='radio_venue_2'> 
        <input type='radio' value='2' role='button'> button 2 
        </label> 
        </div> 
        <div> 
        <label id='radio_venue_3'> 
        <input type='radio' value='3' role='button'> button 3 
        </label> 
        </div> 
        </div>") 
    ), 
     column(9, 
      'Plot') 
    ), 
    tags$script(HTML(yourStr)) 
    ) 
) 

server <- function(input, output, session) { 

} 

shinyApp(ui = ui, server = server) 

回答

1

你絕對可以用shinyBS

rm(list = ls()) 
library(shiny) 
library(shinyBS) 

ui <- shinyUI(
    fluidPage(
    fluidRow(
     column(3, 
      HTML("<div class='container'><br> 
        <h1>Test</h1> 
        <div> 
        <label id='radio_venue_1'> 
        <input type='radio' value='1' role='button'> button 1 
        </label> 
        </div> 
        <div> 
        <label id='radio_venue_2'> 
        <input type='radio' value='2' role='button'> button 2 
        </label> 
        </div> 
        <div> 
        <label id='radio_venue_3'> 
        <input type='radio' value='3' role='button'> button 3 
        </label> 
        </div> 
        </div>")), 
     bsTooltip(id = "radio_venue_1", title = "Button 1 Explanation", placement = "right", trigger = "hover"), 
     bsTooltip(id = "radio_venue_2", title = "Button 2 Explanation", placement = "right", trigger = "hover"), 
     bsTooltip(id = "radio_venue_3", title = "Button 3 Explanation", placement = "right", trigger = "hover"), 
     column(9,'Plot') 
    ) 
    ) 
) 

server <- function(input, output, session) {} 
shinyApp(ui = ui, server = server) 

enter image description here

+0

你是對的做到這一點。謝謝!但是當我看到它時,我看到了一個限制。我們只是用不同的id值創建3個單獨的單選按鈕。對於同一個事物,但是有一個帶有3個按鈕的無線電部件(即帶有一個「id」值)可能嗎? – Nicolabo