隐藏特定页面上的子菜单类

时间:2017-02-28 08:34:35

标签: joomla

我是初学者。我想在我的网站的特定页面上隐藏菜单项hover上的子菜单类。

e.g。如果url是www.mysite.it/login,则在登录(菜单项)上隐藏.submenu。

1 个答案:

答案 0 :(得分:0)

为了识别您所在的页面,可能更容易在body类中输出itemId参数,因此请编辑模板主文件(通常为/templates/something/index.php)并找到<body标记,然后改变它:

<body class="your other classes here <?php  
  $app = JFactory::getApplication();
  $menu = $app->getMenu()->getActive()->id;
  echo "pageid-$itemId"
?>"

这将呈现为

<body class="your other classes here pageid-1302">

然后,假设您希望将此修复程序引入的页面具有itemId 1302,您可以根据自定义css规则的要求使用它来定位导航:

body.pageid-1302 nav.main > ul > li:nth-child(3):hover > ul > li:nth-child(2) {
  display:none;
}

(注意:这只是一个例子,我不知道你的课程,你必须找到只针对子菜单的正确路径。 另外,请确保使用移动设备进行测试,因为有时候课程也不同。

此解决方案不使用脚本;如果你想隐藏的子菜单是徘徊的项目的孩子,它将很容易工作;但是,如果该项目在其他地方,您确实需要一个脚本。在这种情况下,您需要将一个函数附加到悬停事件,并采取相应的行动:假设jQuery可用:

jQuery(function() {
  // now the document is loaded
  jQuery('.firstmenuselector').on('hover',function() {
     // the user hovered the element;
     jQuery('.submenuselector').hide();
  },function() {
     // the user exited the element;
     jQuery('.submenuselector').show();
  });
});

最后,您可能希望在所涉及的菜单项中添加一个类,因此使用css或jQuery选择器进行定位会更容易。