получить идентификатор элемента под курсором в блестящем - PullRequest
0 голосов
/ 24 октября 2019

В моем приложении Shiny, пользователь готовит вывод HTML-кода, состоящего из нескольких отрезков, например:

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

Я хочу получить идентификатор промежутка, над которым пользователь в данный момент накладывает мышью, какблестящий ввод $ ... Я знаю, что есть много способов сделать это с помощью js, jquery get элемент, где курсор равен , но я не знаю, как интегрировать его с Shiny, например, с использованием sparkljs https://deanattali.com/shinyjs/extend.

1 Ответ

1 голос
/ 25 октября 2019

Вот так, если я правильно понимаю:

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)
...