读书人

请问Javascript关于onmouseover事件的

发布时间: 2012-04-06 12:22:24 作者: rapoo

请教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";            }        } 

读书人网 >JavaScript

热点推荐