获取闪亮光标下元素的 ID

get ID of element under cursor in shiny

在我的 Shiny 应用中,用户将鼠标悬停在一些 HTML 输出上,该输出由多个 span 组成,如下所示:

<div id="mydiv">
    <span id="span1">foo</span>
    <span id="span2">bar</span>
</div>

我想获取用户当前鼠标悬停的范围的 ID 作为闪亮的输入$... 我知道有很多 js 方法可以做到这一点,jquery get element where the cursor is, but I don't know how to integrate with Shiny, e.g. by using shinyjs https://deanattali.com/shinyjs/extend

像这样,如果我理解正确的话:

library(shiny)

js <- "
$(document).ready(function(){
  $('span').on('mouseover', function(evt){
    Shiny.setInputValue('span', evt.target.id);
  });
})
"

ui <- basicPage(
  tags$head(tags$script(HTML(js))),
  tags$div(
    tags$span(id = "span1", "foo"),
    tags$span(id = "span2", "bar")
  ),
  br(),
  verbatimTextOutput("span")
)

server <- function(input, output){
  output[["span"]] <- renderPrint({
    input[["span"]]
  })
}

shinyApp(ui, server)