2013-07-16 49 views
1
$grid.find('div.bb-bookblock').each(function(i) 
{        
    var $bookBlock = $(this), 
     $nav = $bookBlock.next(), 
     $navNext = $nav.find('.bb-nav-next'), 
     $navPrev = $nav.find('.bb-nav-prev'), 
     $navFirst = $nav.find('.bb-nav-first'), 
     $navLast = $nav.find('.bb-nav-last'), 
     $playStop = $nav.find('.bb-nav-play-stop'), 
     isPlaying = false, 
     autoplayTimer = null, 
     bb = $bookBlock.bookblock( 
     { 
      speed : 600, 
      shadows : false 
     }); 

}); 

.each函數中的所有變量是否僅在循環內有作用域?例如autoPlayTimer將是setInterval的結果。我想確保我不覆蓋變量。這似乎是工作確定,但我想確保我的理解$().eachjQuery.each和變量範圍

回答

4

變量在Javascript中已經functional scope.

所以內聲明本地所有的變量將只在$.eachbecause of the callback that is a function範圍可用。

​​
2

函數中定義的變量始終只在此函數的作用域中。這不是每個()的問題,而是function(i) {...}的問題。