Javascript 如何在闪亮的仪表板侧栏中手动展开子菜单
我试图手动展开闪亮仪表板侧边栏中的子菜单。Javascript 如何在闪亮的仪表板侧栏中手动展开子菜单,javascript,r,shiny,shinydashboard,Javascript,R,Shiny,Shinydashboard,我试图手动展开闪亮仪表板侧边栏中的子菜单。updateBitEMS功能仅适用于普通菜单,而不适用于嵌套菜单 下面是一个基本示例(从updateBitEMS文档中修改)来说明问题。如果单击“切换选项卡”,它将切换菜单,但不会展开第一个有子菜单的菜单。它似乎只选择了子菜单,但没有展开树 库(闪亮) 图书馆(shinydashboard) ui我帮助自己定义了一些JavaScript,在shiny中使用JavaScript界面extendShinyjs: js$selectMenuItem(0) js
updateBitEMS
功能仅适用于普通菜单,而不适用于嵌套菜单
下面是一个基本示例(从updateBitEMS
文档中修改)来说明问题。如果单击“切换选项卡”,它将切换菜单,但不会展开第一个有子菜单的菜单。它似乎只选择了子菜单,但没有展开树
库(闪亮)
图书馆(shinydashboard)
ui我帮助自己定义了一些JavaScript,在shiny中使用JavaScript界面extendShinyjs
:
js$selectMenuItem(0)
js$selectMenuSubItem(2)
useShinyjs(),
extendShinyjs(text = jsSelectMenuItem),
extendShinyjs(text = jsSelectMenuSubItem)
选择菜单项i
jsSelectMenuItem感谢您的解决方案。最终我找到了一种方法,使用shinyjsshinyjs::delay(100,shinyjs::addClass(“admin”,“active”))
whre“admin”是菜单的id。@Geovany菜单的id到底是什么意思?MenuItems和MenuItems没有ID,所以我有点困惑。@Marcpah我刚才说的是允许您在服务器端创建菜单的menuItemOutput
函数。在该函数中,唯一的参数是utputId
。
jsSelectMenuItem <- "shinyjs.selectMenuItem = function(i){
setTimeout(function(){
$('.treeview > a').eq(i).click();
}, 200);
}"
jsSelectMenuSubItem <- "shinyjs.selectMenuSubItem = function(i){
setTimeout(function(){
$('.treeview-menu > li > a').eq(i).click();
}, 800);
}"