2011-11-20 39 views
1

我已經減少了一些代碼在這裏發佈,並找出爲什麼runAnimation()不可訪問的$ ('#sm_logo')事件處理程序?是因爲它是一種自我啓動功能嗎?我可以解決這個問題,但我真的很想知道爲什麼不能打電話的原因。

$(文件)。就緒(函數(){

var $boxes = $('.box').hide(), div = 0, loop = 0, t; 

(function runAnimation(){ 

    $($boxes[div++] || []).animate({opacity: 'toggle'}, '10', function(){ 
     $(this).hide(); 
     if(div != $boxes.length) { 
      $('.style-7').hide('10'); 
      runAnimation(); 
    } 
    else { 
     $('.style-7').show(); 
     div=0; 
     (loop < companies.length -1) ? ++loop : loop = 0; 
     t = setTimeout(function(){ 
      runAnimation(); 
     }, 2000); 
    }  
    }); 
})() 


$('#sm_logo').toggle(function(){ 
    if($($boxes).is(':animated')) 
     $($boxes).stop(); 
else if ($('.style-7').is(':visible')) 
    clearTimeout(t); 
}, function() { 
     runAnimation(); //why does this not find the function? 
    //location.href = location.href; //this is how I worked around the prob, but 
     //i don't like the fact that the animation restarts from 0 
}); 

}); // end doc

回答

2

您通過在其聲明周圍放置()來從全局名稱空間隱藏它。

刪除它們,它會在那裏。

+0

這很有道理 - 所以我只需要在第一個實例中單獨調用它,而不是自動調用它 - 謝謝。 – SaminOz

相關問題