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

时间:2018-07-05 09:11:12

标签: jquery settimeout each

我创建了一个函数,该函数使用.each函数在称为“ rolloverimages”的父div中循环遍历div。我希望在生成每个图像之间存在一定的延迟,因此我正在使用setTimeOut。我的问题是,一旦添加setTimeOut函数,使用this时的变量就与主要的rollovers变量无关。

有人可以帮忙吗?

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;
        });
    }); 
}

1 个答案:

答案 0 :(得分:1)

您必须在setTimeout调用之前添加var that = this(并使用var代替this)或将函数绑定到此:

SELECT KAYTTAJA.ti_ka_kayttajaid as USER_ID, 
       KAYTTAJA.ti_ka_etunimi as USER_NAME, 
       EXAM.ti_su_sitoumusid as SITOUMUS_ID, 
       EXAM.ti_su_nimitys as SITOUMUS_NAME, 
       PVM.ti_sk_paivamaara AS SITOUMUS_DATE
FROM ti_sitoumus_kayttaja PVM
    WHERE PVM.ti_sk_kayttajaid IN (
        SELECT DISTINCT ti_kayttajantyoyksikko.ti_kt_kayttajaid
        FROM ti_kayttajantyoyksikko 
        WHERE ti_kayttajantyoyksikko.ti_kt_tyoyksikko IN(
            SELECT DISTINCT ti_esimiehentyoyksikko.ti_et_tyoyksikkoid
            FROM ti_esimiehentyoyksikko 
            WHERE ti_esimiehentyoyksikko.ti_et_kayttajaid=14784)) 
JOIN ti_kayttaja KAYTTAJA
    WHERE KAYTTAJA.ti_ka_kayttajaid IN (
        SELECT DISTINCT ti_kayttajantyoyksikko.ti_kt_kayttajaid
        FROM ti_kayttajantyoyksikko 
        WHERE ti_kayttajantyoyksikko.ti_kt_tyoyksikko IN(
            SELECT DISTINCT ti_esimiehentyoyksikko.ti_et_tyoyksikkoid
            FROM ti_esimiehentyoyksikko 
            WHERE ti_esimiehentyoyksikko.ti_et_kayttajaid=14784))
ON PVM.ti_sk_kayttajaid(+) = KAYTTAJA.ti_ka_kayttajaid
JOIN FROM ti_sitoumus EXAM
    WHERE EXAM.ti_su_sitoumusid IN (
        SELECT DISTINCT ti_kayttooikeus_ryhma.ti_kr_kayttokohdeid
        FROM ti_kayttooikeus_ryhma 
        WHERE ti_kayttooikeus_ryhma.ti_kr_kayttokohde = 6 
        AND ti_kayttooikeus_ryhma.ti_kr_kohdeid IN (
            SELECT DISTINCT ti_esimiehentyoyksikko.ti_et_tyoyksikkoid
            FROM ti_esimiehentyoyksikko 
            WHERE ti_esimiehentyoyksikko.ti_et_kayttajaid=14784))
ON PVM.ti_sk_sitoumusid = EXAM.ti_su_sitoumusid(+)
ORDER BY KAYTTAJA.ti_ka_kayttajaid;