【发布时间】:2018-10-21 09:40:53
【问题描述】:
我有一个 flexdashboard,并且有一个操作按钮可以执行此操作:
actionButton(inputId="submit",
label = "Submit answers",
class="btn btn-success",
onClick="location.href='#section-your-results';")
然后是执行此操作的观察者:
observeEvent(input$submit,{
some calculation
})
问题是onClick部分是在observeEvent触发之前执行的。所以计算不适用于我要跳到的部分。
我想做的是这样的:
actionButton(inputId="submit",
label = "Submit answers",
class="btn btn-success")
然后有一个观察者这样做:
observeEvent(input$submit,{
some calculation
useShinyjs()
runjs("location.href='#section-your-results';")
}))
但由于某种原因,runjs 命令没有被执行(我也尝试用alert 替换location.href 来确认。知道出了什么问题吗?我已经看到this answer 并尝试过这种方法也没有运气。
这是(对我而言)一个可重现的示例 - 我希望单击提交时会弹出一个警告框,但它不适合我
---
title: "reprex shinyjs rmd"
output:
flexdashboard::flex_dashboard:
orientation: rows
vertical_layout: scroll
runtime: shiny
---
```{r setup, include=FALSE}
library(flexdashboard)
library(shinyjs)
useShinyjs(rmd = TRUE)
```
Column {data-width=650}
-----------------------------------------------------------------------
### Chart A
```{r}
onclick("submit",runjs('alert("Hello! I am an alert box!!");'))
```
### Chart B
```{r}
actionButton(inputId="submit",
label = "Submit answers",
class="btn btn-success")
```
【问题讨论】:
-
如果您可以发布一个完全可重现的示例,这将有所帮助,这样我们就不必复制和粘贴几个代码块并根据自己的判断填写空白,我们可以立即看到什么问题是并且有一些东西可以解决。
-
我添加了一个例子 - 希望我只是在做一些愚蠢的事情:)
标签: r shinyjs flexdashboard