2016-02-22 3 views
-1

У меня есть функция для моей совой карусели, которая добавляет класс «включение», когда текущий слайдер виден, и удаляет, когда это не так.Функция задержки removeClass

function syncPosition(el){ 

    var current = this.currentItem;  

    this.owl.owlItems.removeClass('turn-on'); 

    setTimeout(function() { 
    $(this).removeClass("turn-on"); 
    }, 2000); 

    $(this.owl.owlItems[this.owl.currentItem]).addClass('turn-on'); 

    } 

Теперь мне нужно добавить 2-секундную задержку для removeClass. Я пробовал с set-timeout, задержка, но я делаю что-то неправильно, потому что это не работает.

Проверить это fiddle

Может кто-нибудь помочь мне с этим вопросом?

+0

Возможная Дубликат [Как "это" ключевое слово работа?] (Http://stackoverflow.com/questions/3127429/how-does-the-this-keyword-work) – Teemu

ответ

2

Потому что this в таймаут отличается от syncPosition. должен быть

function syncPosition(el){ 

    var current = this.currentItem;  

    this.owl.owlItems.removeClass('turn-on'); 
    var t = this;  

    setTimeout(function() { 
    $(t).removeClass("turn-on"); 
    }, 2000); 

    $(this.owl.owlItems[this.owl.currentItem]).addClass('turn-on'); 

    } 
+0

Но он все еще не работает. Я хочу сделать, чтобы красная линия (индикатор выполнения) от моей скрипки была видна еще на 2 секунды в конце. – Lukas

Смежные вопросы