读书人

span 动态绑定事件,该如何处理

发布时间: 2013-03-06 16:20:31 作者: rapoo

span 动态绑定事件

<head runat="server">
<title></title>

</head>
<body>
<form id="form1" runat="server">
<div>
<span id="A1">16.39</span><br />
<br />
<span id="A2">11239</span>
<br />
<span id="Span2">112239</span>
</div><span id="Span1">116.39</span><br />
</form>
</body>

<script type="text/javascript">



var obj = document.getElementsByTagName("span");

for (var i = 0; i < obj.length; i++) {
var span = document.getElementById(obj[i].id);

span.onmouseover = function() { span.style.color = "#FF9900"; };

span.onmouseout = function() { span.style.color = "#FFFFFF"; };
}



</script>

</html>


想给每个span 绑定onmouseover , onmouseout 为啥这样写有问题? 4个实现了onmouseout,只有最后一个实现了onmouseover?
javascript
[解决办法]
Try this:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head runat="server">
<title></title>

</head>
<body>
<form id="form1" runat="server">
<div>
<span id="A1">16.39</span><br />
<br />
<span id="A2">11239</span>
<br />
<span id="Span2">112239</span>
</div><span id="Span1">116.39</span><br />
</form>
</body>

<script type="text/javascript">

var obj = document.getElementsByTagName("span");

for (var i = 0; i < obj.length; i++) {
obj[i].onmouseover = function() { this.style.color = "#FF9900"; };

obj[i].onmouseout = function() { this.style.color = "#FFFFFF"; };
}

</script>

</html>

[解决办法]
确实就是函数中的变量作用域问题,调用函数时span根本不是你以为的span变量;另外用关键词或者html标签来做变量名不好,如果你是其他的变量名就会发现报错了。

读书人网 >JavaScript

热点推荐