如果您希望在小部件的值更改时触发某些JavaScript函数, 那么您应该查看这个
文章。在其中,您将找到许多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)