2016-08-12 3 views
2

Я создаю блестящий dashbord, я создаю 3 tabItems , проблема в том, что когда я нажимаю на один из элементов меню, я не могу нажать снова, я не могу переключиться между вкладками. Может кто-то мне помочь, пожалуйста, код R #uiПереключение между tabItems блестящей приборной панелью

library(shiny) 
library(shinydashboard) 

shinyUI(dashboardPage(skin = "black", 
dashboardHeader(title = h4("Tableau de bord des élections",style =  "color:navy"), 
titleWidth = 300 
), 
dashboardSidebar(id="", 
menuItem(h4(strong("Dashboard", align = "center")), tabName = "dashboard"), 
menuItem(h4(strong("Prédiction")), tabName = "Prédiction"), 
menuItem(h4(strong("Interprétation")), tabName = "Interprétation")), 



dashboardBody(
    tabItems(
     tabItem(tabName = "dashboard",h2("Analyse du comportement électoral des citoyens tunisiens", align="center",style = "color:navy")), 

     tabItem(tabName = "Prédiction", h2("Prédiction du vote", align="center",style = "color:blue")), 
     tabItem(tabName = "Interprétation", h2("Interprétation")) 

     ) 
     ))) 
+0

Не могли бы вы включить либо код, с которым работаете, либо образец, создающий ту же проблему? [Пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610#5963610) – Sam

+0

Над кодом R, который я использовал для создания tabItems @Sam – Asma

ответ

0

Хорошо знать, что я не единственный, кто столкнулся с этим вопросом! Если я правильно понял вашу проблему, у меня была эта же проблема пару месяцев назад - Switching between menuSubItems in shinyDashboard. Попробуйте изменить свой код на боковой панели, чтобы добавить это: (я, конечно, не является автором этого фрагмента - но это решить мою проблему)

dashboardSidebar(id="", 
       tags$head(
        tags$script(
        HTML(
         " 
         $(document).ready(function(){ 
          // Bind classes to menu items, easiet to fill in manually 
          var ids = ['dashboard','Prédiction','Interprétation']; 
          for(i=0; i<ids.length; i++){ 
          $('a[data-value='+ids[i]+']').addClass('my_subitem_class'); 
          } 

          // Register click handeler 
          $('.my_subitem_class').on('click',function(){ 
          // Unactive menuSubItems 
          $('.my_subitem_class').parent().removeClass('active'); 
          }) 
         }) 
         " 
        ) 
        ) 
       ), 

       menuItem(h4(strong("Dashboard", align = "center")), tabName = "dashboard"), 
       menuItem(h4(strong("Prédiction")), tabName = "Prédiction"), 
       menuItem(h4(strong("Interprétation")), tabName = "Interprétation")) 

Если добавить новые вкладки, вы можете добавить их tabNames к var ids линии.

+0

Спасибо, что он работает: D – Asma

0

Я знаю, что ваша проблема решена и что вы, вероятно, не измените свой код ~ 1 год спустя, но для других, подобных мне, сталкиваясь с этой проблемой, у меня есть более простое решение.

Вы должны обернуть все "menuItem" в sideBarMenu() fonction. Это позволит решить проблему и увеличить количество элементов в меню.

library(shiny) 
library(shinydashboard) 

shinyUI(dashboardPage(skin = "black", 
dashboardHeader(title = h4("Tableau de bord des élections",style =  
"color:navy"), 
titleWidth = 300 
), 
dashboardSidebar(id="", sidebarMenu(
menuItem(h4(strong("Dashboard", align = "center")), tabName = "dashboard"), 
menuItem(h4(strong("Prédiction")), tabName = "Prédiction"), 
menuItem(h4(strong("Interprétation")), tabName = "Interprétation"))), 

dashboardBody(
tabItems(
    tabItem(tabName = "dashboard",h2("Analyse du comportement électoral des citoyens tunisiens", align="center",style = "color:navy")), 

    tabItem(tabName = "Prédiction", h2("Prédiction du vote", align="center",style = "color:blue")), 
    tabItem(tabName = "Interprétation", h2("Interprétation")) 

    ) 
))) 

 Смежные вопросы

  • Нет связанных вопросов^_^