【问题标题】:Javascript OnMouseOver without attribute没有属性的Javascript OnMouseOver
【发布时间】:2011-11-17 16:45:27
【问题描述】:

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

Uncaught TypeError: Cannot call method 'getElementsByTagName' of null

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

JSFiddle 链接:http://jsfiddle.net/NfTtq/

另请注意,我正在执行此 Javascript 而不是 JQuery :S

【问题讨论】:

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


    【解决方案1】:

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

    另一个问题是onMouseOver,javascript 是区分大小写的,所以只有onmouseover 可以工作。

    这里是更新的jsfiddle:

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

    【讨论】:

    • 哦,有道理,从上到下阅读 ok ok。是否有一种 javascript 方法可以判断文档是否已准备好,而正文中没有任何内容? document.ready() 什么的?
    • 只需在
    【解决方案2】:

    你是在加载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';            
            }
    }
    

    【讨论】:

      【解决方案3】:

      当在 DOM 上调用时,onMouseDown 事件仅以小型大写字母编写。这对我有用:

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

      【讨论】:

        【解决方案4】:

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

        <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>
        

        【讨论】:

        • 欢迎来到 Stack Overflow!请edit 解释一下为什么这段代码回答了这个问题?
        猜你喜欢
        • 1970-01-01
        • 2012-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多