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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么只有第一個節點對象會變,這是怎么回事???

為什么只有第一個節點對象會變,這是怎么回事???

神不在的星期二 2023-04-09 17:13:16
function navTopMouseOver(navDivId, navTopAClass, navTopAOverClass){var collTopANodes = document.getElementById(navDivId).getElementsByTagName("a");for (var x = 0; x < collTopANodes.length; x++) {collTopANodes[x].onmouseover = function(){collTopANodes[x].className = navTopAOverClass;}();}}我想實現在節點對象上鼠標進入就改變class,但是這段代碼在網頁一加載,我還沒有讓鼠標經過,它的class就變了,而且不循環,只有第一個節點對象會變,這是怎么回事?
查看完整描述

2 回答

?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

collTopANodes[x].onmouseover = function(){
collTopANodes[x].className = navTopAOverClass;
}();
把最后那個括號刪掉
collTopANodes[x].onmouseover = function(){
collTopANodes[x].className = navTopAOverClass;
};

查看完整回答
反對 回復 2023-04-12
?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

當 onmouseover 被調用時 for 已經循環結束,你代碼中并沒有匿名函數,() 只是自動執行

把 for 循環改為下面這樣


for (var x = 0; x < collTopANodes.length; x++) {    (function(a) { // 開始匿名函數,a 為 x 的參考        collTopANodes[a].onmouseover = function(){            this.className = navTopAOverClass;    })(x); // 將 x 傳入匿名函數}


查看完整回答
反對 回復 2023-04-12
  • 2 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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