首页 > 解决方案 > Jquery:如何在函数后添加延迟

问题描述

我想为我拥有的 4 个功能添加延迟。

我尝试像在这里一样添加延迟,但这不起作用。

$('.navList .li1').toggleClass('li1Active');
$('.navList .li2').delay(2000).toggleClass('li2Active');
$('.navList .li3').delay(2000).toggleClass('li3Active');
$('.navList .li4').delay(2000).toggleClass('li4Active');

标签: jqueryfunctiondelay

解决方案


您正在尝试在做某事之前添加延迟。所以更好的方法是调用一个函数并传递选择器和类来切换。像这样:

function addDelay(selector, toggleClass, delay) {
  setTimeout(function () {
    $(selector).toggleClass(toggleClass);
  }, delay);
}

然后像这样调用函数:

$('.navList .li1').toggleClass('li1Active');
addDelay('.navList .li2', 'li2Active', 2000);
addDelay('.navList .li3', 'li3Active', 2000);
addDelay('.navList .li4', 'li4Active', 2000);

推荐阅读