jQuery在每个不能访问$(this)内创建间隔

时间:2019-01-17 15:31:11

标签: javascript jquery

我的网站上有三个不同的幻灯片。幻灯片内的图像数量是由wordpress生成的。

我需要检查幻灯片是否包含多于一个的元素,如果是,则必须开始幻灯片显示。现在我遇到一个问题,我在jQuery每个函数中创建了一个间隔,并且在间隔中无法从每个函数访问$(this)。因此,调用间隔时什么也没有发生。

$( ".home .images .image-slide div" ).each(function() {
    var count = $(this).children().length; 
    if (count > 1) {
        $(this).find("img:first-child").addClass("active");
        setInterval(function(){ 
            if($(this).find('.active').is(":last-child")){
                $(this).find('.active').removeClass("active").fadeOut().parent().find("img:first-child").addClass("active").fadeIn();
            } else {
                $(this).find('img.active').removeClass("active").fadeOut().next().fadeIn().addClass("active");
            }
        }, 4000);
    }
}); 

如何使用$(this)访问区间内部?

1 个答案:

答案 0 :(得分:1)

正如Marie在评论中指出的那样,您需要解决关闭问题。

通过将print_r($row)移到$(this)之外,这是使其工作的一种简单方法。

setInterval