Откройте диалоговое окно Shiny Modal, щелкнув несколько div - PullRequest
0 голосов
/ 09 мая 2020

У меня ниже Shiny-app -

library(shiny)

  shinyApp(
    ui = fluidPage(
      useShinyjs(),  # Set up shinyjs
      div(id = "Div1", style = "height: 100px; width: 100px; background-color: red;"),
      div(id = "Div2", style = "height: 100px; width: 100px; background-color: blue;")
    ),
    server = function(input, output) {
      onclick('Div1', showModal(modalDialog(
            div(id = "Div3", style = "height: 100px; width: 100px; background-color: black;", tableOutput("tab")),
          )))
    }
  )

В этом приложении, если я нажму на Div1, откроется Modal dialog box. Однако я хочу дополнить это условием, что, если я нажму ЛЮБОЙ из Div1 или Div2, откроется тот же dialog box.

Есть ли способ добиться этого?

1 Ответ

0 голосов
/ 09 мая 2020

Вы можете использовать обходной путь согласно https://github.com/daattali/shinyjs/issues/167

library(shiny)
library(shinyjs)

shinyApp(
    ui = fluidPage(
        useShinyjs(),  # Set up shinyjs
        div(id = "Div1", style = "height: 100px; width: 100px; background-color: red;"),
        div(id = "Div2", style = "height: 100px; width: 100px; background-color: blue;")
    ),
    server = function(input, output, session) {

        ids <- c("Div1", "Div2")
        for (id in ids) {
            local({
                shinyjs::onclick(id, {
                    showModal(modalDialog(
                        div(id = "Div3", style = "height: 100px; width: 100px; background-color: black;", tableOutput("tab")),
                    ))
                })
            })
        }
    }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...