首先,如該答案中所述:
$(document).ready 方法不起作用,因為在 DOM 準備好之前,服務器不會渲染它的輸出。改用 session$onFlushed,將引數設定為 TRUE,然后閃亮將只運行一次函式,而不是在每次會話重繪 時運行。
正確的。現在,當我單擊另一個 ( ) 時,應用程式中會出現一個 ( actionButton) 。但是,當單擊另一個按鈕后出現此按鈕時不起作用。我想在他出現時應用和效果。#btn3#btn1jQuerymouseovermouseout#btn3
我的應用程式:
library(shiny)
ui <- fluidPage(
shinyjs::useShinyjs(),
fluidRow(actionButton(inputId = "btn1", label = 'Press'), uiOutput("btn2"))
)
server <- function(input, output, session) {
observeEvent(input$btn1, {
output$btn2 <- renderUI({
actionButton(
inputId = "btn3",
label = "",
title = "Ver/ esconder análise",
icon = icon('eye'),
style = "color: #f2f2f2; background-color: #008cba;"
)
})
})
session$onFlushed(function() {
shinyjs::runjs("$('#btn3').on('mouseover',function(){
$(this).css({'color':'#020202','background-color':'#ffff00'});
});
$('#btn3').on('mouseout',function() {
$(this).css({'color':'#f2f2f2','background-color':'#008cba'});
});")
}, once=TRUE)
}
shinyApp(ui, server)
如何解決這個問題?
uj5u.com熱心網友回復:
library(shiny)
js <- "
$(document).ready(function(){
$('#btn3').on('mouseover', function(){
$(this).css({'color': '#020202', 'background-color': '#ffff00'});
}).on('mouseout', function() {
$(this).css({'color': '#f2f2f2', 'background-color': '#008cba'});
});
});
"
ui <- fluidPage(
tags$head(tags$script(HTML(js))),
br(),
fluidRow(
actionButton(
inputId = "btn1",
label = 'Press',
onclick = "$('#btn3').show()"
),
actionButton(
inputId = "btn3",
label = "",
title = "Ver/ esconder análise",
icon = icon('eye'),
style = "display: none; color: #f2f2f2; background-color: #008cba;"
)
)
)
server <- function(input, output, session) {
}
shinyApp(ui, server)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/435264.html
標籤:javascript jQuery r 闪亮的 闪亮的仪表板
