2016-09-16 6 views
2

光沢のあるaselectizeウィジェットでオプションを選択するときに、いくつかの機能をトリガーしたいと思います。しかし、私は機能サーバ側をトリガするのではなく、クライアント側をトリガしたいと考えています。 ObserveとobserveEventはサーバー側(server.R)で動作しますが、それは私が望むものではありません。あなたには、いくつかのJavaScript関数をトリガしたい場合シャイニーで選択変更する

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

光沢のある

答えて

3

に進むべき道を示唆してください

は、私は以下しようとしたが、それはui.Rでは動作しませんでしたときのウィジェットの値が変更あなたは thisの記事を見てください。あなたは光沢のあるものでもサポートされているjavaScriptイベントをたくさん見つけるでしょう。それはあなたが望むものはないので

さんはshiny:inputchangedイベントを見てみましょう:

光沢のあるイベント:入力が新しい価値を、持っているときにトリガーされるinputchanged例えば、あなたはアクションボタンをクリックするか、入力したときにテキスト入力。イベントオブジェクトには、プロパティname(入力のID)、値(入力の値)、inputType(入力のタイプ(例:shiny.action))があります。

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

それは容易ウィジェットのIDを変更しalert機能をevent.value...を交換することにより調整することができるいい例があります。

$(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) 
:だから限り、私はあなたの質問を理解して、あなたは、このコードの塊を探しています
関連する問題