Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

190
Visualizações
Shiny Javascript Events no funciona con el selector jQuery $(#id)

En la documentación de RStudio sobre eventos de javascripts en shiny https://shiny.rstudio.com/articles/js-events.html , hay este ejemplo para el evento shiny:value :

 $('#foo').on('shiny:value', function(event) { // append a character string to the output value event.value += ' Oh that is nice!'; }); // use event.target to obtain the output element $(document).on('shiny:value', function(event) { // cancel the output of the element with id 'foo' if (event.target.id === 'foo') { event.preventDefault(); } });

y dice:

Dado que estos eventos se activan específicamente en un elemento de salida, puede agregar el oyente en el elemento de salida en lugar de en el documento, aunque este último también funciona, por ejemplo.

pero cuando trato de usar el primer método en mi aplicación brillante, parece que no funciona.

Por ejemplo, si ejecuta la aplicación a continuación, solo funciona el método con el selector $(document) y activa un mensaje.

 library(shiny) ui <- fluidPage( tags$head( tags$script( "$('#my_table').on('shiny:value', function(event) { alert('MSG 1'); });" ), tags$script( "$(document).on('shiny:value', function(event) { if (event.target.id === 'my_table') { alert('MSG 2'); } });" ) ), sliderInput("my_slider", "Rows", 1, 20, 1), tableOutput("my_table") ) server <- function(input, output, session) { output$my_table <- renderTable(iris[1:input$my_slider, ]) } shinyApp(ui, server)

Supongo que me falta algo como en la documentación, dice que el método 2 debería funcionar. Cualquier ayuda apreciada, gracias

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Eso es porque la tabla aún no existe (no está en el DOM) cuando se lee el script. Tu puedes hacer:

 $(document).ready(function(){ $('#my_table').on('shiny:value', function(event) { alert('MSG 1'); }); });

Otra forma en que debería funcionar es colocar el script al final de la interfaz de usuario, sin tags$head .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda