|
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
這個(gè)例子循環(huán)為一組對(duì)象綁定事件處理函數(shù)。
但是,如果我們?cè)谶@個(gè)基礎(chǔ)上增加一些需求。比如在點(diǎn)擊某一條記錄的時(shí)候彈出這是第幾條記錄?
肯能你會(huì)理所當(dāng)然的這么寫(xiě):
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
測(cè)試一下你會(huì)發(fā)現(xiàn)alert出來(lái)的都是:這是第6記錄
其實(shí)這里for循環(huán)已將整個(gè)列表循環(huán)了一遍,并執(zhí)行了i++,所以這里i變成了6,
有什么好的辦法解決這個(gè)問(wèn)題嗎?
那就是閉包了,個(gè)人認(rèn)為閉包是js中最難捉摸的地方之一,
看看什么是閉包:
閉包時(shí)是指內(nèi)層的函數(shù)可以引用存在與包圍他的函數(shù)內(nèi)的變量,即使外層的函數(shù)的執(zhí)行已經(jīng)終止。
這個(gè)例子中我們可以這樣做:
[Ctrl+A 全選 注:如需引入外部Js需刷新才能執(zhí)行]
PS:閉包很難,很復(fù)雜!
JavaScript技術(shù):Javascript循環(huán)綁定事件的示例代碼,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。