第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

為什么一定要用titles[i].id = i;然后用divs[this.id]去取到元素而不用divs[i]?

練習(xí)題中實測,用divs[i]不行,而divs[this.id]就可以,不知道為啥

for(var i=0;i<titles.length;i++){
???????? titles[i].id = i;
???????? titles[i].onclick = function(){
??????????? //? alert(conts[this.id].style.display);
???????????? if(divs[this.id].style.display == "none"){
???????????????? divs[this.id].style.display = "block";
???????????? }else{
???????????????? divs[this.id].style.display = "none";
???????????? }
???????? }
???? }

正在回答

3 回答

因為onclick是事件綁定函數(shù),也就是說你的click事件發(fā)生的時候,局部變量i早就不存在了(undefined)。所以需要把i存入到titles的每個對象中,這樣當你很久之后發(fā)生click事件時,還是能讀取到正確的i的值。

3 回復(fù) 有任何疑惑可以回復(fù)我~
#1

CoolIsLife 提問者

非常感謝!
2015-04-02 回復(fù) 有任何疑惑可以回復(fù)我~
#2

CoolIsLife 提問者

是不是可以這樣理解,window.onload = function(){...}中,function里面的內(nèi)容在界面加載時就大部分已經(jīng)實例化了,即就加載這一次,而里面 *.onclick = function(){...}事件綁定函數(shù)只有在觸發(fā)事件的時候才去實例化,即以后只是會多次加載事件綁定函數(shù),而window.onload = function(){...}中的function不再加載,故i不存在,也就沒有意義了?
2015-04-02 回復(fù) 有任何疑惑可以回復(fù)我~
#3

用戶已禁用 回復(fù) CoolIsLife 提問者

大概就是這樣
2015-04-02 回復(fù) 有任何疑惑可以回復(fù)我~
#4

Sappho

你這樣說是不對的,不信alert(i)試試
2016-03-08 回復(fù) 有任何疑惑可以回復(fù)我~
#5

STRONG很壯不怕撞

非常感謝,同樣解決了我的困惑,看來對一些基本的概念理解的還不夠。
2016-04-19 回復(fù) 有任何疑惑可以回復(fù)我~
#6

STRONG很壯不怕撞 回復(fù) Sappho

我試過alert(i); 結(jié)果就是觸發(fā)每一個都彈出“3”,即循環(huán)執(zhí)行后的i 值,取值的時候是在事件觸發(fā)的時候,不是在綁定的時候,如果綁定后還有其他的操作改變了i 的值,那觸發(fā)的時候彈出的就是i 當時的值。我覺得是這樣的……
2016-04-19 回復(fù) 有任何疑惑可以回復(fù)我~
#7

Jeoop

那請問有什么辦法可以解決這個問題呢?如果給元素添加id的話不會產(chǎn)生污染嘛?
2017-09-24 回復(fù) 有任何疑惑可以回復(fù)我~
查看4條回復(fù)

因為onClick不是立即執(zhí)行的,實際上當事件處理函數(shù)執(zhí)行時,這里如果使用i的話會引用同一個i,而且這個i值等于for循環(huán)結(jié)束時i的值。

實際上這里起的效果跟閉包是一樣的,具體效果是讓每一個事件處理函數(shù)都有屬于它自身的i值,而不是引用同一個i。

1 回復(fù) 有任何疑惑可以回復(fù)我~

在Javascript的事件函數(shù)的this指針是指向調(diào)用它的元素。比如:

<div id="test"></div>

div1.onclick = function( ) {

????alert(this.id); ? //輸出test

};

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

為什么一定要用titles[i].id = i;然后用divs[this.id]去取到元素而不用divs[i]?

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號