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

点击banner按钮在div内加载页面的JS实现是否正确?有优化方案吗?

现有代码问题说明
  • 重复绑定btnConta点击事件:你给同一个按钮绑定了两个点击回调,一个触发conta.html加载,一个触发页面跳转到index.html,实际点击后页面直接跳转,加载内容的逻辑永远不会执行
  • 多余的$(document).ready()嵌套:该方法仅用于监听DOM加载完成事件,写在点击事件的回调函数内没有任何作用,属于冗余代码
  • 脚本引入顺序错误:你先引入了自定义的pagInicial.js,再引入jQuery依赖,导致自定义脚本执行时$对象未定义,代码直接报错无法运行
  • 语义化问题:导航栏的<a>标签未设置href属性,不符合HTML语义规范,也不会默认展示点击手型样式
  • 代码冗余:多个按钮的点击逻辑高度相似,重复绑定事件会增加后续维护成本
优化实现方案

优化思路:统一使用jQuery语法、合并相似逻辑、修正引入顺序、修复事件绑定错误,后续新增导航按钮无需修改JS代码,可维护性更强。

修正后HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Pág. Inicial</title>
  <link href="pagInicial.css" rel="stylesheet">
  <!-- 先引入第三方依赖,再引入自定义脚本 -->
  <script src="https://code.jquery.com/jquery-3.5.1.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
  <script type="module" src="pagInicial.js"></script>
</head>
<body>
  <div class="wrapper">
    <header role="banner">
      <nav>
        <div class="logo"><img class="logo" src="Imagens/Logo2.png" alt="logo"></div>
        <div class="menu">
          <ul>
            <!-- 给a标签加跳转占位和自定义属性存目标页面路径 -->
            <a class="btn btn1 load-btn" data-page="denuncia.html" href="javascript:void(0)">Denuncias</a>
            <a class="btn btn1 load-btn" data-page="conta.html" href="javascript:void(0)">Conta</a>
            <a id="btnLogout" href="#"><button>Logout</button></a>
          </ul>
        </div>
      </nav>
    </header>
    <div class="content" id="content">
      <p>Lorem, ipsum dolor sit amet consectetur adipisicing elit </p>
    </div>
  </div>
</body>
</html>

优化后JS代码

// 所有代码包在ready回调里,确保DOM加载完成后再执行
$(document).ready(function() {
  // 统一绑定所有加载按钮的点击事件,不用逐个绑定
  $(".load-btn").on("click", function() {
    // 取自定义属性里的页面路径
    const targetPage = $(this).data("page");
    // 加载内容到指定容器,用相对路径更灵活,不用写死本地IP
    $("#content").load(targetPage);
  });

  // 如果确实需要点击Conta按钮跳转index页面,再打开这段代码,不需要直接删除即可
  // $("#btnConta").on("click", function() {
  //   window.location.href = "index.html";
  // });
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:24:03