0

我正在制作一个脚本,以在菜单按钮悬停(或鼠标悬停)时使子菜单显示为下拉菜单。我使 if 条件引用 this.id="menutoggle1" 并检查它是真还是假。

如果为真,它应该使用语句触发一个函数

document.getElementById("submenu1").style.display="inherit";

它不起作用,但我认为这与我的 if 条件有关。我不太了解条件,但我希望有人能解释为什么这是错误的,甚至可以帮助我解决它。

这是我的代码;

function submenu_show()
{
  if(this.id="menutoggle1" == true)
  {
    document.getElementById("submenu1").style.display="inherit";
  }
}

我知道另一种方法可以实现我想要的结果,但是我需要为所有应该有子菜单的菜单选项编写两个函数来显示和两个函数隐藏,这只是混乱和呃。

编辑:我认为如果不完全放弃我的想法,我就无法让它发挥作用,所以我选择了另一种选择。我也意识到,如果写得正确,它毕竟不是那么混乱(毕竟它应该用于几个下拉菜单)。

这是我最终使用的代码;

<div id="menubutton1" onmouseover="submenu1_show();" onmouseout="submenu1_hide();"></div>
<div id="submenu1" onmouseover="submenu1_show();" onmouseout="submenu1_hide();"></div>

function submenu1_show()
{document.getElementById("submenu1").style.display="inherit";}
function submenu1_hide()
{document.getElementById("submenu1").style.display="none";}
4

2 回答 2

0

在当前代码中,是 merky。它当然不是元素的 ID。您可以在函数中找到元素。

function fnName(){
     var el = document.getElementById("...");
     if(el.id === "something"){ ... }
}

如果您想获得针对特定 ID 执行此操作的函数,您只需向 fnName 函数添加一个参数并将该参数传递给 doc.getElByID 函数即可。

于 2013-01-06T21:26:19.770 回答
0

为什么不使用 jQuery 来为你做这件事呢?通过一点 CSS 和 jQuery 编辑,您可以利用滑动效果和淡入淡出效果以及其他好处。看看使用 jQuery 下拉是多么容易:

$('nav ul li a').hover(
    function() {
        $('nav ul li ul').addClass('over');
    },
    function() {
    $('nav ul li ul').removeClass('over');
    }
);

这是一个工作演示。我知道它不能回答您的问题,但我希望这对您有所帮助!

于 2013-01-06T21:35:14.563 回答