我运行了下面的代码,但出于某种原因,无论我在哪里放置延迟,行都会立即执行。
非常感谢任何帮助。
$('#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);
});
答案 0 :(得分:3)
使用.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函数,这可能更适合某些用例