為什么一定要用titles[i].id = i;然后用divs[this.id]去取到元素而不用divs[i]?
練習(xí)題中實(shí)測(cè),用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";
???????????? }
???????? }
???? }
2015-04-02
因?yàn)閛nclick是事件綁定函數(shù),也就是說你的click事件發(fā)生的時(shí)候,局部變量i早就不存在了(undefined)。所以需要把i存入到titles的每個(gè)對(duì)象中,這樣當(dāng)你很久之后發(fā)生click事件時(shí),還是能讀取到正確的i的值。
2016-10-21
因?yàn)閛nClick不是立即執(zhí)行的,實(shí)際上當(dāng)事件處理函數(shù)執(zhí)行時(shí),這里如果使用i的話會(huì)引用同一個(gè)i,而且這個(gè)i值等于for循環(huán)結(jié)束時(shí)i的值。
實(shí)際上這里起的效果跟閉包是一樣的,具體效果是讓每一個(gè)事件處理函數(shù)都有屬于它自身的i值,而不是引用同一個(gè)i。
2015-04-02
在Javascript的事件函數(shù)的this指針是指向調(diào)用它的元素。比如:
<div id="test"></div>
div1.onclick = function( ) {
????alert(this.id); ? //輸出test
};