R shinydashboard:捕获仪表板上的点击事件 body
R shinydashboard: capture click event on dashboard body
如何捕获 shinydashboard 上的点击事件 body?
尝试如下。它加载仪表板并在不单击 body 的情况下发出警报。然后点击 body 什么都不做。预期的行为是每次我单击 body 时它都会发出警报。
library(shiny)
library(shinydashboard)
library(shinyjs)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(),
dashboardBody(useShinyjs())
)
server <- function(input, output) {
shinyjs::runjs("document.body.addEventListener('click', alert('hello'));")
}
shinyApp(ui, server)
一个想法是给 body 一个 id 并将其与 shinyjs::onclick 一起使用,但是我不确定如何给 body 一个 id。
您的事件监听器应该是一个函数,而不是一个表达式。例如
shinyjs::runjs("document.body.addEventListener('click', function() {alert('hello')});")
}
这样每次点击发生时,都会调用该函数。
如何捕获 shinydashboard 上的点击事件 body?
尝试如下。它加载仪表板并在不单击 body 的情况下发出警报。然后点击 body 什么都不做。预期的行为是每次我单击 body 时它都会发出警报。
library(shiny)
library(shinydashboard)
library(shinyjs)
ui <- dashboardPage(
dashboardHeader(),
dashboardSidebar(),
dashboardBody(useShinyjs())
)
server <- function(input, output) {
shinyjs::runjs("document.body.addEventListener('click', alert('hello'));")
}
shinyApp(ui, server)
一个想法是给 body 一个 id 并将其与 shinyjs::onclick 一起使用,但是我不确定如何给 body 一个 id。
您的事件监听器应该是一个函数,而不是一个表达式。例如
shinyjs::runjs("document.body.addEventListener('click', function() {alert('hello')});")
}
这样每次点击发生时,都会调用该函数。