我有下面的代码正在运行,但由于某种原因,无论我在哪里放置延迟线执行立即。jQuery延迟被忽略
任何帮助将不胜感激。
$('#team_a_grid, #team_b_grid').on("click", "td.clickable", function(){
var dot_or_cross ='<span>Dot</span>'
$(this).delay(3000).removeClass().html(dot_or_cross);
});
我有下面的代码正在运行,但由于某种原因,无论我在哪里放置延迟线执行立即。jQuery延迟被忽略
任何帮助将不胜感激。
$('#team_a_grid, #team_b_grid').on("click", "td.clickable", function(){
var dot_or_cross ='<span>Dot</span>'
$(this).delay(3000).removeClass().html(dot_or_cross);
});
使用.setTimeout()
$('#team_a_grid, #team_b_grid').on("click", "td.clickable", function() {
var dot_or_cross = '<span>Dot</span>'
var $this=$(this);
setTimeout(function() {
$this.removeClass().html(dot_or_cross);
}, 3000);
});
作为评价
的.delay()方法是最适合排队jQuery效果之间延迟指出。因为它是有限的 - 例如,它不提供取消延迟的方法.delay()不是JavaScript本地setTimeout函数的替代品,这对于某些用例可能更合适。
的可能重复的[JQUERY各添加类延迟其间](http://stackoverflow.com/questions/12680803/jquery-each-add-class-with-delay-inbetween) – Alnitak