2016-11-07 1 views
2

"shinyjs"패키지에 대해 질문 할 수 있습니까?"shinyjs"패키지를 사용하여 광택 대시 보드의 메뉴 항목을 보이거나 보이지 않게 제어

반짝 이는 대시 보드를 만들었으며 "shinyjs"를 사용하여 메뉴 항목의 보이지 않거나 보이지 않는 것을 제어하는 ​​기능을 설정하고 싶습니다.

이 대시 보드의 데이터를 선택하는 첫 번째 메뉴 항목/페이지를 디자인했습니다. 사용자가 원하는 데이터를 선택한 후에는 사용자가 선택을 변경하기 위해 돌아가는 것을 원하지 않습니다. 따라서 사용자가이 버튼을 클릭하면 첫 번째 메뉴 항목이 사라지지만 나머지 메뉴 항목이 표시되는 버튼을 디자인하려고합니다.

나는 가능할 것이라고 확신하지만 코드를 작성하는 데는 몇 가지 자바 지식이 필요하다고 생각합니다.

이 질문에 대한 대답과 같지만 메뉴 항목의 표시/숨김을 토글하는 것입니다.

activate tabpanel from another tabpanel

내가 어떤 대답을 주셔서 감사합니다!

감사합니다.

조안나

+1

최소한의 재현 가능한 예를 제공해주십시오. 'shinyjs '를 사용하지 않고 자바 스크립트와 CSS'display : none'로 이것을 해결할 수 있습니다. –

+0

감사 Xiongbing Jin! 나는 $ div (id = "haha", menuItem()) 태그를 추가하고 observeEvent (입력 $ showSidebar, {shinyjs :: toggle ("haha")})를 제어하고자하는 menuItem에 추가하여이 문제를 해결했다. 그들. – Joanna

답변

3

나는/공연을 숨기려는 항목에 대한 태그 $ div의()를 추가하여 해결했다.

UI :

hidden(tags$div(class="header", id="haha",menuItem(tags$em("DIY Pivot Table",style="font-size:170%"),icon=icon("bar-chart-o"),tabName="Pivot"),br(), 

는 menuItem (태그 $ 엠 ("검색 데이터"스타일 = "글꼴 크기 : 1백70%"TABNAME), 아이콘 = 아이콘 ("막대 차트 - 오"), = "searchdata")))

서버 :

observeEvent(input$showSidebar, { 
shinyjs::toggle("haha") 

})

그래서 이런 식으로, 당신은 오 보이지 않는/가시 제어 입력 $의 showSidebar을 사용할 수 있습니다 f 메뉴 항목.

+3

솔루션을 공유해 주셔서 감사합니다. 다른 div에 포장하지 않고도 문제를 해결하고 싶다면'toggle()'의'id' 매개 변수 대신'selector' 매개 변수를 사용하여 가능해야합니다.하지만 말할 수는 없습니다. 작업 코드로 완전히 재현 할 수있는 예제를 보지 않고'selector '값으로 사용할 것 –

+0

@daattali에 너무 감사드립니다! 나는 더 많은 가능성을 분명히 시도 할 것입니다! – Joanna

+1

딘의 제안 작업을 시도하는 사람들을 저장하려면 jquery selector를 [jquery selector] (https://www.w3schools.com/jquery/jquery_ref_selectors.asp)라고 잘 설명합니다. 어떤 selector도 toggle의 인수로 처리 될 수 있습니다 :'selector = "jquery selector"' – SprengMeister

관련 문제