2016-09-16 2 views
2

반짝 이는 aselectize 위젯에서 옵션을 선택하면 일부 기능을 실행하고 싶습니다. 그러나 필자는 기능 서버 측을 트리거하지 않고 클라이언트 측을 트리거하려고합니다. Observe 및 observeEvent는 서버 측 (server.R)에서 작동하지만 원하는 것은 아닙니다. 일부 자바 스크립트 함수를 실행하려면반짝 반짝 빛나는에서 선택하십시오

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

반짝

답변

3

앞으로 수있는 방법을 제안 해주십시오

나는 아래 시도하지만 ui.R에서 작동하지 않았을 때 위젯 변화의 값 그러면 this 기사를보아야합니다. 반짝 반짝 빛나는 곳에서도 많은 자바 스크립트 이벤트가 지원됩니다. 당신이 원하는 것을 때문에

의이 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) 
: 그래서 지금까지 내가 당신의 질문을 이해하면이 코드 덩어리를 찾고
관련 문제