2016-01-24 6 views
1

Я пытаюсь использовать пакет shinyBS в свое простое приложение. То, что я хочу сделать, - создать реактивный текст всплывающей подсказки, зависит от каждого radioButton.реактивный tooltipBS в блестящем использовании ShinyBS

Чтобы прояснить проблему, я написал простой код в HTML & JS.

Я также нашел один solution, который, казалось, решил мою проблему, но на самом деле я не думаю, что он работает правильно. Можно ли это сделать с помощью пакета shinyBS?

Я также хочу реализовать свой код HTML & JS в 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

Вы правы. Благодаря! Но когда я посмотрел на него прямо сейчас, я вижу ограничение. Мы просто создаем 3 отдельных переключателя с разными значениями id. Возможно ли одно и то же, но с одним виджетами с 3 кнопками (т. Е. С одним значением 'id')? – Nicolabo

 Смежные вопросы

  • Нет связанных вопросов^_^