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

页面FadeIN/FadeOUT过渡JavaScript Bug:链接跳转异常

问题原因与修复方案

问题原因

你现在所有链接都跳转到同一个页面,核心问题出在获取跳转地址的逻辑错误。看你代码里的这一行:

newLocation = $('.link a').attr("href");

$('.link a')这个选择器会选中页面上所有带.link类的元素下的<a>标签,而.attr("href")方法只会返回第一个匹配元素的href值——也就是页面里第一个链接(Music)的地址。不管你点哪个链接,拿到的都是同一个地址,自然跳转结果都一样了。

修复方案

只需要修改获取href的方式,让它拿到当前点击的那个链接的地址就行,这里提供两种直观的修改方式:

方式一:绑定容器事件,获取当前容器内的链接地址

把JS里的点击事件代码改成这样:

$(document).ready(function() {
  $('body').css('display', 'none');
  $('body').fadeIn(1000);

  $('.link').click(function(event) {
    event.preventDefault();
    // 用$(this)指代当前被点击的.link容器,再找里面的a标签
    const newLocation = $(this).find('a').attr("href");
    $('body').fadeOut(1000, function() {
      window.location = newLocation;
    });
  });
});

方式二:直接绑定a标签事件(更直观)

如果觉得绑定容器有点绕,也可以直接把点击事件绑定到<a>标签上,这样$(this)就是当前被点击的链接本身:

$(document).ready(function() {
  $('body').css('display', 'none');
  $('body').fadeIn(1000);

  $('.link a').click(function(event) {
    event.preventDefault();
    // 直接取当前点击的a标签的href
    const newLocation = $(this).attr("href");
    $('body').fadeOut(1000, function() {
      window.location = newLocation;
    });
  });
});

两种方式都能解决你的问题,选哪种看你自己的习惯~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:31:18