JavaScript 停止事件流

标签 javascript jquery jquery-events

我正在尝试为图像创建幻灯片。实际上它更像是一个淡入淡出的表演。

我可以解释整个事情,但我认为如果我只发布我的代码会更清楚。

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; 这样的代码让我觉得我做错了。

最佳答案

看完this你将能够回答你自己的问题。您可以使用 callapply 替换 var that = this;(已经有很多关于它的文档和问题)。

关于JavaScript 停止事件流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1693301/

相关文章:

javascript - 在表单提交时禁用提交按钮的问题

javascript - str.replace(/[^0-9]/g, "") 删除我的整个字符串,而不是仅仅删除非数字字符。如何使其正常工作?

jquery - 使用jquery clone创建div元素,如何设置ID标签?

javascript - 当项目被选择或输入与列表中的项目匹配时,HTML5 数据列表的 jQuery 事件

php - 你能从 PHP 循环中调用 JavaScript 函数吗?

javascript - 在 Parse 中检索 objectId

javascript - 基于 JavaScript 值限制复选框

javascript - 在窗口之间拖放图像,而不是链接 - HTML5

javascript - 在 jquery-ui sortable 中移动元素时更改元素样式

javascript - 使用窗口作为原型(prototype)在 javascript 中返回看似错误的值