2009-11-07 73 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