【发布时间】:2021-09-29 14:34:05
【问题描述】:
我正在尝试将 JS 脚本(“全选”框)应用到动态呈现的 UI,但以下操作不起作用:
library(shinyjs)
ui <- fluidPage(
useShinyjs(),
uiOutput("checkbox_ui")
)
server <- function(input, output, session) {
output$checkbox_ui <- renderUI({
checkboxGroupInput(inputId = "myCheckbox",
label = NULL,
choices = c("All", "A", "B"))
})
runjs(HTML("
$(\"#myCheckbox input[value='All']\").click(function(e) {
$(\"#myCheckbox input[type='checkbox']\").prop('checked', $(e.target).prop(\"checked\"));
});
"))
}
shinyApp(ui, server)
但是,当我跳过使用renderUI 时,会运行 JS 脚本:
library(shinyjs)
ui <- fluidPage(
useShinyjs(),
checkboxGroupInput(inputId = "myCheckbox",
label = NULL,
choices = c("All", "A", "B"))
)
server <- function(input, output, session) {
runjs(HTML("
$(\"#myCheckbox input[value='All']\").click(function(e) {
$(\"#myCheckbox input[type='checkbox']\").prop('checked', $(e.target).prop(\"checked\"));
});
"))
}
shinyApp(ui, server)
有人知道解决方法吗?
【问题讨论】:
标签: javascript r shiny shinyjs