【问题标题】:Selectize onChange in Shiny在 Shiny 中选择 onChange
【发布时间】:2016-09-16 20:04:32
【问题描述】:

我想在闪亮的选择小部件中选择一个选项时触发一些功能。但是,我不想触发功能服务器端,而是在客户端。观察和观察事件是在服务器端(server.R)工作的,但这不是我想要的。

我尝试了以下方法,但它在 ui.R 中不起作用

  tags$script('
              $( document ).ready(function() {
                $("#fTICKER4").selectize({
                      onChange: function () {
                      alert("Selectize event: Change");
                  }
              });
            '),

请提出闪亮的前进方向

【问题讨论】:

    标签: r shiny selectize.js


    【解决方案1】:

    如果您想在小部件的值更改时触发一些 javaScript 函数,那么您应该查看this 文章。你会发现有很多在 shiny 中也支持的 javaScript 事件。

    让我们看一下 shiny:inputchanged 事件,因为它可以满足您的要求:

    当输入具有新值时触发事件 shiny:inputchanged,例如,当您单击操作按钮或键入文本输入时。事件对象具有属性 name(输入的 id)、value(输入的值)和 inputType(输入的类型,例如 shiny.action)。

    还有一个很好的例子

    $(document).on('shiny:inputchanged', function(event) {
      if (event.name === 'foo') {
        event.value *= 2;
      }
    });
    

    可以通过更改小部件的 ID 并将 event.value... 替换为 alert 函数来轻松调整。据我了解您的问题,您正在寻找这段代码:

     $(document).on("shiny:inputchanged", function(event) {
                    if (event.name === "fTICKER4") {
                      alert("inputchanged event: Change");
                    }
                  });
    

    完整示例

    library(shiny)
    ui <- fluidPage(
      tags$script('
                  $(document).on("shiny:inputchanged", function(event) {
                    if (event.name === "fTICKER4") {
                      alert("inputchanged event: Change");
                    }
                  });
                '),
      sliderInput("fTICKER4", "Change triggers an event", min = 1, max = 10, value = 5),
      sliderInput("other", "Change doesn't trigger an event",   min = 1, max = 10, value = 5)
    )
    
    server <- function(input, output) { 
    
    }
    
    shinyApp(ui, server)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-30
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      • 2011-11-07
      • 2017-10-01
      • 1970-01-01
      相关资源
      最近更新 更多