在我的Shiny应用程序中,用户将鼠标悬停在一些HTML输出中,该输出包含多个范围,如下所示:
<div id="mydiv">
<span id="span1">foo</span>
<span id="span2">bar</span>
</div>
我想获取用户当前将鼠标悬停的跨度的ID作为闪亮的输入值$ ...我知道有很多js方法可以做到这一点,jquery get element where the cursor is,但我不知道如何与Shiny集成,例如通过使用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)