延迟不能在jQuery中工作

时间:2018-03-05 13:17:42

标签: jquery

我正在尝试为jQuery函数添加延迟,因此它会在页面和javascript完全加载后加载,但它仍然会加载,就像没有延迟一样。

$('.validate-state .select2-selection--single')
  .delay( 10000 )
  .addClass('custom-alert');

我在ready()函数中调用上面的内容。

4 个答案:

答案 0 :(得分:4)

使用setTimeout功能,delay通常用于动画

setTimeout(function(){
 $('.validate-state .select2-selection--single')
  .addClass('custom-alert');
},10000);

如果您想在js和html加载后执行代码,那么您需要在页面就绪事件中触发代码

$(function(){
 $('.validate-state .select2-selection--single')
      .addClass('custom-alert');
})

答案 1 :(得分:0)

延迟不适用于.addClass它只能影响动画;这样做的方法就像快速举例:

$(function(){
    setTimeOut( ()=>$(elem).addClass('custom-alert'), 1000 );
});

或jQuery方式:

$(function(){
    $(elem).delay(1000).queue(function(){
        $(this).addClass("custom-alert").dequeue();
    });
});

答案 2 :(得分:0)

要在加载整个页面后运行您的功能,您可以像这样使用$(document).ready()

$(document).ready(function() {
  $('.validate-state .select2-selection--single').addClass('custom-alert');
});

答案 3 :(得分:0)

您可以尝试使用setTimeout()

来自https://stackoverflow.com/a/7408036/5007419的参考

使用.delay()进行jQuery效果,包括动画。

setTimeout()最适合用于其他一切。例如,当您需要在某个经过的时间触发事件时。

快速示例:

$(window).load(function() {
    setTimeout(function(){
        // you code here
    }, 1000); // 1000 is time in milliseconds
});