没有属性的Javascript OnMouseOver

时间:2011-11-17 16:45:28

标签: javascript html dom drop-down-menu onmouseover

我正在尝试触发javascript onMouseOver事件,而不会在我的每个锚属性上都有onMouseOver属性。实际上,当用户将鼠标悬停在元素上时,我想显示一些其他锚点,但我甚至无法获得工作警报。我一直收到错误:

Uncaught TypeError: Cannot call method 'getElementsByTagName' of null

这对我没有意义,因为如果我提醒getElementById()我最终会得到一个DIV元素,然后它应该获得该div元素中的所有锚标记...不确定我是什么我失踪了。

JSFiddle Link:http://jsfiddle.net/NfTtq/

还要注意我正在做这个Javascript而不是JQuery:S

4 个答案:

答案 0 :(得分:3)

您试图在元素存在之前找到它,您可以在jsfiddle中通过从左侧选择onDomReady而不是no wrap (head)

来执行此操作

另一个问题是onMouseOver,javascript区分大小写,因此只有onmouseover才有效。

这是更新的jsfiddle:

http://jsfiddle.net/NfTtq/1/

答案 1 :(得分:1)

您在加载html之前正在执行脚本,因此您需要将其放入window.onload

http://jsfiddle.net/NfTtq/5/

window.onload= function()
    {

      var node = document.getElementById('navFloat').getElementsByTagName('a');
      node[0].onmouseover = function()
        {
            alert('yes');
            document.getElementById('homeDrop').style.display = 'block';            
        }
}

答案 2 :(得分:0)

在DOM上调用时,onMouseDown事件仅以小写大写形式编写。这对我有用:

var node = document.getElementById('navFloat').getElementsByTagName('a');
node[0].onmouseover= function()
{
    document.getElementById('homeDrop').style.display = 'block';
}

答案 3 :(得分:0)

此代码适用于所有浏览器.....

<p>
<a href="/">
<img alt="Ovdje uključiti " 
src="errorimages/normal.png" 
onmouseover="this.src='errorimages/hover.png'" 
onmousedown="this.src='errorimages/press.png'" 
onmouseup="this.src='errorimages/hover.png'" 
onmouseout="this.src='errorimages/normal.png'"
></a>
</p>