You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

练习jQuery时delay()/queue()方法失效,如何解决?

解决jQuery delay不生效的问题&修复鼠标铅笔效果

嘿,我来帮你搞定这个问题!你目前遇到两个小问题:一个是jQuery的delay()没按预期工作,另一个是PHP循环的语法错误导致生成不了小div。咱一步步来解决:

首先修复PHP循环的错误

你的for循环里用了$i == 0(比较运算符),但这里需要的是赋值$i = 0,$j同理,不然循环根本不会执行,页面上出不来那些小div。修正后的HTML/PHP代码:

<div class="wrap">
    <?php 
    $i = 0; 
    for ($i = 0; $i<50; $i++){ 
        $j = 0; 
        for ($j = 0; $j<50; $j++){ 
            echo '<div class="case"></div>'; 
        } 
    } 
    ?>
</div>

然后解决jQuery delay失效的核心问题

问题根源

jQuery的delay()方法只对加入到动画队列的操作生效(比如animate()、fadeIn()、slideUp()这类自带队列的方法),而css()方法默认不会加入队列,所以你用delay()等它没用——后面的代码会直接跳过延迟执行,但因为你嵌套了queue(),又没手动释放队列,导致后续的颜色变化完全被卡住了。

解决方案1:用dequeue()释放队列

在每个queue()的回调函数末尾调用$(this).dequeue()(或者用回调参数里的next()),让动画队列继续往下执行。修改后的JavaScript代码:

$(document).ready(function(){
    $('.case').mouseenter(function(){
        $(this).css("background-color", "yellow")
               .delay(500)
               .queue(function(next){ // 用next参数代替手动写dequeue,更清晰
                   $(this).css("background-color", "red");
                   next(); // 告诉jQuery:这个队列任务完成了,继续执行下一个
               })
               .delay(500)
               .queue(function(next){
                   $(this).css("background-color", "#000");
                   next();
               });
    });
});

解决方案2:用setTimeout代替delay()(更直观)

如果你不想跟jQuery的队列打交道,直接用原生的setTimeout会更简单,完全不受队列限制,逻辑也更直白:

$(document).ready(function(){
    $('.case').mouseenter(function(){
        const $this = $(this);
        // 第一步:立即变黄色
        $this.css("background-color", "yellow");
        // 500ms后切换红色
        setTimeout(() => {
            $this.css("background-color", "red");
            // 再隔500ms恢复黑色
            setTimeout(() => {
                $this.css("background-color", "#000");
            }, 500);
        }, 500);
    });
});

额外提示:去掉CSS里的transition干扰

你给.case加了transition: all 1.5s ease,但这会和JS手动控制的颜色变化时间冲突,导致过渡效果混乱,建议把这个transition属性删掉。

内容的提问来源于stack exchange,提问作者samuel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:37:33