ibo*_*oru 10 javascript r shiny shinyjs flexdashboard
试图更新侧边栏在flexdashboard选项卡上单击时.无法让它发挥作用.
---
title: "Test Sidebar"
output:
flexdashboard::flex_dashboard:
orientation: rows
runtime: shiny
---
```{r setup}
library(flexdashboard)
library(shiny)
library(shinyjs)
useShinyjs(rmd = TRUE)
```
Sidebar {.sidebar data-width=250}
=======================================================================
```{r}
div(id = "one", selectInput("input1",label= "Show Always",choices=c("a","b","c")))
div(id = "two",selectInput("input2",label = "Show only on Tab 1", choices=c("d","e","f")))
```
<!-- Update the sidebar based on the tab chosen. Generated HTML code shown for tabs-->
Tab 1 <!-- <a href="#section-tab-1" aria-expanded="true" data-toggle="tab"> -->
=======================================================================
```{r}
useShinyjs(rmd = TRUE)
shinyjs::onclick("#section-tab-2",shinyjs::hide(id = "two"))
shinyjs::onclick("#section-tab-1",shinyjs::show(id = "two"))
```
Tab 2 <!-- <a href="#section-tab-2" aria-expanded="true" data-toggle="tab"> -->
=======================================================================
```{r}
useShinyjs(rmd = TRUE)
actionButton("hideSlider", "Hide Input Two")
observeEvent(input$hideSlider, {
shinyjs::toggle(id = "two", anim = TRUE)
})
```
Run Code Online (Sandbox Code Playgroud)
使用actionButton()和observerEvent()可以正常工作.任何建议赞赏.
一些评论:
您只需要调用useShinyjs()
一次,无需在每个代码块中调用它
onclick()
获取元素的 ID。不是选择器 - ID。这意味着您调用onclick("element")
而不是onclick("#element")
如果您查看仪表板生成的 HTML,您会发现没有 id 为“section-tab-2”的元素,因此您尝试执行的操作将不起作用
在常规的闪亮应用程序中,当我使用 a 时tabsetPanel()
,我执行您想要执行的操作的方式是使用所选选项卡的值。每当选择一个选项卡时,都会有一个输入值,为您提供所选内容的值。我没有广泛使用flexdashboard,所以我不确定是否有类似的方法来获取flexdashboard中所选选项卡的值。
归档时间: |
|
查看次数: |
843 次 |
最近记录: |