【问题标题】:Adding delay to a jquery script向 jquery 脚本添加延迟
【发布时间】:2023-04-05 05:21:01
【问题描述】:

我想在下面的代码中添加 2 秒的延迟:

if (length < 20 & warningContainer.is(\':empty\')){
warningContainer.html(minLengthMessage);
el.addClass(\'input-error\');
}

我该怎么做?

我试过了:

warningContainer.delay(2000).html(minLengthMessage);

PS:我不知道如何编写 JQuery

谢谢

【问题讨论】:

  • jQuery 延迟仅适用于效果。所以使用 JavaScript 内置的 setTimeout。此外,我注意到您在 if 语句中使用按位与而不是逻辑与。你可以在这里阅读更多信息:stackoverflow.com/questions/7310109/…

标签: jquery


【解决方案1】:

当您调用 delay(2000) 时,您实际上正在调用 delay(2000, "fx"),因为该函数有一个可选的第二个参数(您希望延迟操作的队列名称),默认为 fx .各种效果方法(fadeOut()、animate() 等)都使用这个队列,这就是 delay() 对它们产生影响的原因。

我认为你可以使用

setTimeout(function(){
    // add your code
}, 2000);

https://www.mattlunn.me.uk/blog/2012/06/jquery-delay-not-working-for-you/

【讨论】:

    【解决方案2】:

    我不确定 .delay 在 jQuery 中是如何工作的,但你可以用旧的 JS 方式来做到这一点。

    setTimeout(function() {
        warningContainer.delay(2000).html(minLengthMessage);
    }, 2000);
    

    【讨论】:

      猜你喜欢
      • 2014-01-26
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      相关资源
      最近更新 更多