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')});")  

}

这样每次点击发生时,都会调用该函数。