延迟函数删除类

Delay function removeClass

本文关键字:删除 函数 延迟      更新时间:2023-09-26

我的猫头鹰轮播有一个功能,当当前滑块可见时添加一个类"打开",当它不可见时删除。

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

现在我需要为 removeClass 添加 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');
  }