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

jQuery fadeIn方法在按钮JS点击事件中不生效如何解决

问题原因
  • fadeIn 方法仅对处于隐藏状态的元素生效,你的目标#div默认是显示状态,直接调用方法不会触发动画
  • 逻辑拆分混乱:你分别写了原生JS、jQuery两个独立的按钮点击监听,负责更新内容的final()函数从未被调用,更新内容和淡入动画两个操作完全没有配合
  • 随机数生成逻辑有漏洞:Math.floor(Math.random() * 3)只会生成0、1、2三个值,永远无法命中case 3分支,不会返回"Three"结果
修复方案

把更新内容、元素显隐控制、淡入动画的逻辑合并到同一个点击监听里,每次点击先隐藏元素、更新随机内容,再执行淡入动画,同时修正随机数生成范围,修复后完整代码如下:

function random() {
  // 乘4才能覆盖0-3的所有整数取值
  let number = Math.floor(Math.random() * 4);
  let result = ""

  switch(number) {
    case 0: 
      result = "Zero";
      break;
    case 1:
      result = "One";
      break;
    case 2:
      result = "Two";
      break;
    case 3:
      result = "Three";
      break;
  }
  return result; 
}

$(document).ready(function(){
  $("button").click(function(){
    $("#div")
      .hide()
      .html(random())
      .fadeIn('slow');
  });
});

补充说明:如果需要每次点击都重复触发淡入效果,必须每次执行动画前先把元素重置为隐藏状态,否则元素已经处于显示状态时,fadeIn不会产生任何动画效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.10 16:15:47