1. 程式人生 > >jquery的閉包(理解執行函數)

jquery的閉包(理解執行函數)

如果 選擇 solid read class img function 生效 dex

在前端進行元素集操作時肯定會有each操作
但是each操作的動作都會在所有所有元素遍歷完後才會進行生效,故如果需要在遍歷元素時就要使其操作生效的話,就需要在each元素時進行立即執行函數進行調用

以下是jquery的demo代碼(一個html中有多個img元素,對img元素的邊框進行設置):

$(document).ready(function(){
    $("img").each(function(index){   //選擇所有的img元素集合進行遍歷
        //(function(){xxxxxxx})()使用此定義立即執行函數,其實就是在這裏進行了函數的直接調用
        (funciton(m){
            setTimeout(function(){   //這裏是為了更好的查看結果,所謂對每隔1s進行元素的改變
                 $("img").eq(m).css("border","solid 2px yellow");  //使用元素過濾器根據元素的index進行定位來依次設置元素的css屬性               
            }, 1000*(m+1));        //用於jquery中這裏的的不是間隔時間,而是經歷的總時間,所以如果是間隔1s的話,第二個元素就要等待2s,以此類推(且這裏的index是從0開始的)
        })(index);     //此index是給立即執行函數的實參,裏面的function中的m為函數的形參(把index傳遞給裏面的function)
    
    });
});


jquery的閉包(理解執行函數)