首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

请问Javascript关于onmouseover事件的有关问题

2012-04-06 
请教Javascript关于onmouseover事件的问题HTML codehtmlheadtitletest/titlestyleul li{float:l

请教Javascript关于onmouseover事件的问题

HTML code
<html><head>    <title>test</title>    <style>        ul li{            float:left;            }    </style></head><body>    <ul id="myul">        <li>1</li>        <li>2</li>        <li>3</li>        <li>4</li>    </ul>    <script language="javascript">        var nodes = this.myul.childNodes;        for (var i = 0 ; i < nodes.length ; i++ ){            var node = nodes[i];            node.onmouseover = function() {                node.style.backgroundColor = "red";            }        }    </script></body></html>

问题说明:
本人想实现,当鼠标移到一个li元素的时候,实现背景变色。于是自己写了上面的代码,运行的时候发现不论怎么鼠标移动到哪个li上都是最后一个li变色。

我知道在有的别的实现发现方法,自己也写了一段比较臃肿的代码实现了这个功能。如下
var nodes = this.myul,childNodes;
nodes[0].onmouseover = function() {
  node.style.backgroundColor = "red";
}
nodes[0].onmouseout = function() {
  node.style.backgroundColor = "white";
}
....

我想知道为什么通过循环这种方式不行,难道事件不能储存么?
麻烦哪位朋友给个解释下,有解决方法更好了,谢谢大家。


[解决办法]
JScript code
        var nodes = this.myul.childNodes;        for (var i = 0 ; i < nodes.length ; i++ ){            var node = nodes[i];            node.onmouseover = function() {                this.style.backgroundColor = "red";            }            node.onmouseout = function() {                this.style.backgroundColor = "transparent";            }        } 

热点排行