如何防止asp:菜单在单击时被忽略

时间:2011-08-02 18:59:16

标签: asp.net menu dismiss

我有一个System.Web.UI.WebControls.Menu,点击顶层时会被解雇。

请参见截屏视频http://www.screencast.com/t/puCmErPVp

我不希望它被点击时被解雇。我希望菜单保持不变。

菜单项由站点地图填充。

我可以使用Menu对象上的任何内容来获取此行为吗?也许我可以使用一些javascript或CSS来防止它消失?

2 个答案:

答案 0 :(得分:0)

似乎你有第三方组件与asp:menu一起使用,如果是,你需要它的源代码来修改<li>的悬停动作,如果没有,有一些客户端javascripts或css样式,你可以修改它们。

答案 1 :(得分:0)

我用一些Javascript修复了它。

基本上,之前发生的事情是document.body.onclick被设置为Menu_HideItems。我更改了它,以便document.body.onclick可以调用我自己的函数,并在隐藏菜单项之前检查你点击了什么。

<script type="text/javascript" language="javascript">

  function HideMenuOnClick(item) {
  var target;
     if (item.target) {
        target = item.target;
     }
     else if (item.srcElement) {
        target = item.srcElement;
     }

     if (target.className.indexOf("StaticMenuItemStyle") == -1) 
     {
        Menu_HideItems(item);
     }
     else
     {
        return false;
     }
  }

  document.body.onclick = HideMenuOnClick;
</script>