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

链接hover随机变色功能首次加载失效,刷新后正常,求排查原因

问题原因及修复方案

你的JavaScript代码存在两处语法错误,这直接导致页面首次加载时脚本执行失败,hover事件根本没绑定上:

  • $ (this) 里的空格是无效写法,jQuery选择器的$和括号之间不能有空格,必须写成$(this)
  • 鼠标离开的回调函数中,$(this).css("color","" 缺少闭合括号和分号,正确写法是$(this).css("color", "");

语法错误会让浏览器JS引擎中断执行,所以首次加载时完全没效果;偶尔刷新后看似正常,大概率是浏览器缓存的异常状态,本质问题还是代码写错了。

修正后的完整代码如下:

JavaScript

$(document).ready(function() {
  $("a").hover(function() {
    $(this).css("color", getRandomColor());
  }, function() {
    $(this).css("color", "");
  });

  function getRandomColor() {
    var letters = '0123456789ABCDEF'.split('');
    var color = '#';
    for (var i = 0; i < 6; i++) {
      color += letters[Math.floor(Math.random() * 16)];
    }
    return color;
  }
})

CSS

a {
  color: red;
}

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h2><a href="https://www.google.com/">TEST</a></h2>

额外提示:如果之后需要给动态添加的链接也加这个效果,建议用事件委托写法,比如:

$(document).on('mouseenter', 'a', function() {
  $(this).css("color", getRandomColor());
}).on('mouseleave', 'a', function() {
  $(this).css("color", "");
});

这样新添加的链接也能触发悬停变色效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 02:37:37