9-22編程練習:為什么不通過函數給onmouseover賦值就不能正常改變顏色?
方法一:??
window.onload = function(){
?????????????????
???? // 鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。
??????? var tr = document.getElementsByTagName("tr");
??????? for(var i=0; i<tr.length; i++){
??????????? tr[i].onmouseover=function(){
??????????????? tr[i].style.backgroundColor="#f2f2f2";
??????????? }
??????????? tr[i].onmouseout=function(){
??????????????? tr[i].style.backgroundColor="#fff";
??????????? }
??????? }
?? }
???方法二:
?? window.onload = function(){
???? // 鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。
??????? var tr = document.getElementsByTagName("tr");
??????? for(var i=0; i<tr.length; i++){
?????????? bgcChange(tr[i]);
??????? }
?? }
?? function bgcChange(obj)
???? {
??????? obj.onmouseover=function(){
??????????? obj.style.backgroundColor="#f2f2f2";
??????? }
??????? obj.onmouseout=function(){
??????????? obj.style.backgroundColor="#fff";
??????? }
?? }
方法一不能正常執行,鼠標指向后顏色不變;方法二可以正常改變背景顏色,這是什么原因?糾結在這問題上2小時了。。。。。
2016-01-02
你可以試著按照注釋的來寫寫看,原因你可以去查一下閉包作用域相關的資料了解一下
2016-01-22
暈乎乎