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