3

複数のアクション ボタンがあり、異なる選択入力を表示したいのですが、最後にクリックしたボタン ID を知りたいのですが、どうすればよいですか? 私が使うとき

which(lapply(c(1:10), function(i) { input[[paste0("ActionButton", i)]]}) == TRUE)

クリックされたすべてのボタンが表示されますが、前のボタンをもう一度クリックできるようにするために、最後のボタンを知りたいです。どうやってやるの?私は光沢があり、すべてのリアクティブ/分離の問題を理解しているかどうかわからないので、ヒントがあれば幸いです。

4

3 に答える 3

7

JSを追加することでそれを行うことができます

みたいな

$(document).on('click', '.needed', function () {
                              Shiny.onInputChange('last_btn',this.id);
                             });

needed例 (すべての btn を制御したくない場合は、btnにクラスを追加します)

 ui <- shinyUI(fluidPage(

  titlePanel("Track last clicked Action button"),
  tags$head(tags$script(HTML("$(document).on('click', '.needed', function () {
                                Shiny.onInputChange('last_btn',this.id);
                             });"))),

  sidebarLayout(
    sidebarPanel(
      actionButton("first", "First",class="needed"),
      actionButton("second", "Second",class="needed"),
      actionButton("third", "Third",class="needed"),
      actionButton("save", "save"),
      selectInput("which_","which_",c("first","second","third"))
    ),

    mainPanel(

      textOutput("lastButtonCliked")
    )
  )
))


server <- shinyServer(function(input, output,session) {
  observeEvent(input$save,{
    updateSelectInput(session,"which_",selected = input$last_btn)
  })
  output$lastButtonCliked=renderText({input$last_btn})

})
# Run the application 
shinyApp(ui = ui, server = server)
于 2016-10-21T07:00:33.113 に答える