2009-11-07 68 views
1

首先抱歉爲奇怪的標題,但我不知道如何調用此。我正在嘗試爲圖像創建幻燈片。其實它更像是一個淡入淡出的節目。Javascript停止事件流程

我可以解釋整個事情,但我認爲如果我只是發佈我的代碼,它會更清晰。

var Images = ["images/1.jpg", "images/2.jpg", "images/3.jpg", "images/4.jpg"] 
var ImageContainer = $("#Images"); 
var Image = $("<img />"); 
var Counter = 0; 

var Animate = { 
    Start: function() { 
     var that = this; 
     Image.attr("src", Images[Counter]); 
     ImageContainer.append(Image.fadeIn(that.Middle())); 
    }, 

    Middle: function() { 
     var that = this; 
     setTimeout(function() { 
      that.End(); 
     }, 2000); 
    }, 

    End: function() { 
     var that = this; 
     Image.fadeOut(function() { 
      Counter = Counter + 1; 
      that.Start(); 
     }) 
    } 
} 

Animate.Start(); 

$("#Button").click(function() { 
    //Stop the animation; //Change counter value; //Start animation 
}); 

所以我的主要問題是:我該如何做停止,更改和啓動功能。我的第二個問題是:這是鏈接事件的好方法嗎?我之前嘗試過其他方法,但他們真的變得很難看。我也不是真正的JavaScript專家,所以在我的例子中可能有一些非常奇怪的代碼。代碼如「var that = this;」讓我覺得我做錯了。

親切的問候Pickels。

回答

2

看完this後,您將能夠回答自己的問題。您可以使用替換var that = this;請致電申請(關於這方面已有很多文檔和問題)。

+0

這不是我的主要問題,但謝謝你回答。 – Pickels 2009-11-07 15:24:57

+0

對不起,我不明白問題的方向。 如果你調用Animate.End(); ? – Matias 2009-11-07 15:36:51

+0

Well End()只是做了一些事情,然後再次調用。所以調用End()並不能阻止它。但我想我通過調用一個函數Stop()來調整jquery stop()來停止淡入淡出。 – Pickels 2009-11-07 15:49:43