亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

這兩段代碼不一樣嗎?為什么第一段不能運行第二段卻可以?

第一段:

?window.onload = function(){

? ? ?// 鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。

? ? ? ? ?var z = document.getElementsByTagName("tr");

? ? ? ? ?for(var i=1;i<z.length;i++){

? ? ? ? ? z[i].onmouseover = function(){? z[i].style.backgroundColor = "red"; }

? ? ? ? ? z[i].onmouseout = function(){? z[i].style.backgroundColor="#fff";? }

? ? ? ? ?}

? ? ? }


第二段:

window.onload = function(){

? ? ?// 鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。

var z=document.getElementsByTagName("tr");

? ? ? ? for(var i=1;i<z.length;i++){ ab(z[i]); }

function ab(n){

? ? ? ? ? ? n.onmouseover=function(){n.style.backgroundColor="red";}

? ? ? ? ? ? n.onmouseout=function(){ n.style.backgroundColor="#fff"; }

? ? ? ?}

}


正在回答

2 回答

var z = document.getElementsByTagName("tr");

? ? ? ? ?for(var i=1;i<z.length;i++){

? ? ? ? ? z[i].onmouseover = function(){ ?this.style.backgroundColor = "red"; }

? ? ? ? ? z[i].onmouseout = function(){? this.style.backgroundColor="#fff";? }

? ? ? ? ?}

將第一段代碼改為上面這樣就可以了。主要是TR對象z[i]作用域的問題,你的TR對象z[i]的作用域僅限于FOR循環體內,在回調函數function中TR對象z[i]將會丟失,因此無法對它綁定鼠標移上事件和鼠標移開事件,導致未出現變色效果。不知道這樣解釋你能否懂,如果還有疑惑,建議去翻譯作用域的相關資料。

1 回復 有任何疑惑可以回復我~
#1

qq_星辰_89 提問者

非常感謝!
2018-07-05 回復 有任何疑惑可以回復我~

因為第一個事件是在循環里邊 ? 而第二個是在循環外 ? ? 所第二個事件沒有為每一行都添加上

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

這兩段代碼不一樣嗎?為什么第一段不能運行第二段卻可以?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號