首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将此与setTimeOut函数一起使用将停止工作

将此与setTimeOut函数一起使用将停止工作
EN

Stack Overflow用户
提问于 2018-07-05 09:11:12
回答 1查看 24关注 0票数 0

我创建了一个函数来循环使用.each函数在父div中循环div,名为“rolloverimages”。我希望在每一张正在生成的图像之间有一个延迟,所以我正在使用setTimeOut。我的问题是,一旦我添加了setTimeOut函数,使用this的变量就与主rollovers变量无关。

有人能帮忙吗?

代码语言:javascript
复制
function rolloverImages() {

    $('.thumbnail-wrapper').one('mouseover', function() {
        var rollovers = $(this).find('.rolloverimages div');
        var time = 0;

        rollovers.each(function() {
            setTimeout(function() {
                var datasrc = $(this).data('hover');
                var img = $('<img id="dynamic">');
                var imgsrc = img.attr('src', datasrc);
                var parent = $(this).parent('.rolloverimages').parent('.thumbnail-wrapper');
                console.log(parent);
            }, time);
            time += 2000;
        });
    }); 
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-05 09:19:23

您必须在that=this调用之前添加var setTimeout (并使用它而不是此),或者将函数绑定到以下内容:

代码语言:javascript
复制
function rolloverImages() {

          $('.thumbnail-wrapper').one('mouseover', function() {
            var rollovers = $(this).find('.rolloverimages div');
            var time = 0;

            rollovers.each(function() {
               setTimeout(function() {
                  var datasrc = $(this).data('hover');
                  var img = $('<img id="dynamic">');
                  var imgsrc = img.attr('src', datasrc);
                  var parent = $(this).parent('.rolloverimages').parent('.thumbnail-wrapper');
                  console.log(parent);
                }.bind(this), time);
                time += 2000;
            });

        });

    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51187463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档