首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有光泽的bootstrapSwitch不起作用

有光泽的bootstrapSwitch不起作用
EN

Stack Overflow用户
提问于 2015-11-30 02:33:52
回答 1查看 408关注 0票数 1

这是来自http://shiny.rstudio.com/gallery/widget-gallery.html的简单示例。初始化引导开关后,当我单击按钮时,输出不会改变。我错过了什么吗?

代码语言:javascript
复制
library(shiny)

ui <- shinyUI(fluidPage(
  tags$head(tags$link(rel = "stylesheet", type = "text/css", href = "//cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/3.3.2/css/bootstrap3/bootstrap-switch.min.css")),                      
  tags$head(tags$script(src='//cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/3.3.2/js/bootstrap-switch.min.js',type='text/javascript')),
  tags$head(tags$script("$(document).ready(function($) {
                        $('#check').bootstrapSwitch();
                        });",
                                 type='text/javascript')),
  checkboxInput("check", label = "", value = TRUE),
  fluidRow(column(3, verbatimTextOutput("value")))

  ))


server <- shinyServer(function(input, output) {

  output$value <- renderPrint({ input$check })

  outputOptions(output, "value", suspendWhenHidden = FALSE)        

})


shinyApp(ui, server)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-30 07:41:49

您可以尝试使用javascript更改值。

服务器

代码语言:javascript
复制
shinyServer(function(input, output,session) {

})

用户界面

代码语言:javascript
复制
library(shiny)
shinyUI(fluidPage(
  tags$head(tags$link(rel = "stylesheet", type = "text/css", href = "//cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/3.3.2/css/bootstrap3/bootstrap-switch.min.css")),                      
  tags$head(tags$script(src='//cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/3.3.2/js/bootstrap-switch.min.js',type='text/javascript')),
    tags$head(tags$script("$(document).ready(function($) {
                          $('#check').bootstrapSwitch();
                  $('#value').text($('#check').bootstrapSwitch('state'));
$('#check').on('switchChange.bootstrapSwitch', function () {

    $('#value').text($('#check').bootstrapSwitch('state'));

                          });
                          });",
                          type='text/javascript')),
  checkboxInput("check", label = "", value = F),
  fluidRow(column(3, verbatimTextOutput("value")))

))

要使用服务器端的开关,您需要Shiny.onInputChange

用户界面

代码语言:javascript
复制
library(shiny)
shinyUI(fluidPage(

  tags$head(tags$link(rel = "stylesheet", type = "text/css", href = "//cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/3.3.2/css/bootstrap3/bootstrap-switch.min.css")),                      
  tags$head(tags$script(src='//cdnjs.cloudflare.com/ajax/libs/bootstrap-switch/3.3.2/js/bootstrap-switch.min.js',type='text/javascript')),
    tags$head(tags$script("$(document).ready(function() {
                          $('#check').bootstrapSwitch();

$('#check').on('switchChange.bootstrapSwitch', function () {
var sw=$('#check').bootstrapSwitch('state')
    Shiny.onInputChange('check', sw)
                          });
                          });",
                          type='text/javascript')),
  checkboxInput("check", label = "", value = F),
  fluidRow(column(3, verbatimTextOutput("value"))      )


))

服务器

代码语言:javascript
复制
shinyServer(function(input, output,session) {

output$value <- renderPrint({ ifelse(input$check, rnorm(1), rnorm(1,10000)) })
})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33990637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档