javascript - 脚本运行多次

标签 javascript jquery

我有这个脚本,它使用菜单结构替换 div 中的内容。 这工作正常,除了它在单击各种菜单项时运行多次。这使得页面加载非常慢。

这是我的结构:

$(document).ready(function() {
  $('a.nav-link').click(function(e) {
    var datalist = $(this).data('value');
    var dataname = $(this).data('name');
    console.log(datalist, dataname);
    $(".content_div").hide().delay(500).fadeIn(500);
    $(".content_div").load(dataname + ".php");
    return false;
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
  <ul class="nav nav-tabs" id="top-nav" role="tablist">
    <li class="nav-item"><a class="nav-link active home" href="#" data-value="home" data-name="home">Aanwezig</a></li>
    <li class="nav-item"><a class="nav-link" href="#" data-value="vervoer" data-name="vervoer">Vervoer</a></li>
    <li class="nav-item"><a class="nav-link" href="#" data-value="extra" data-name="extra">Overige</a></li>
  </ul>
</nav>

<div class="content_div">

</div>

还有一个控制台屏幕截图,您可以在其中看到脚本正在成倍增加... enter image description here

我不知道为什么会这样。任何帮助都会非常好......

最佳答案

看起来您的带有 eventhandler 的 js 代码被加载了不止一次。你最好找出原因。

无论如何,您可以通过使用 .off('click').on('click') 来克服这个问题(每次代码运行时您都会取消现有的 eventhandler (off()) 并设置一个新的 (on())。

$('a.nav-link').off('click').on('click', function(e){ ...});

关于javascript - 脚本运行多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51873581/

相关文章:

javascript - 未捕获的类型错误 : . slideToggle 不是函数

javascript - 如何在 JavaScript 中将序列化数组值转换为 JSON

javascript - 动态否定外部脚本

javascript - 使用 React-Icon 库将鼠标悬停在图标上时显示文本

javascript - 警告 ESLint 规则下出现意外的未命名函数 func-names

javascript - 计算javascript中的总值没有给出正确的结果

javascript - 打开后关闭切换

javascript - JQuery 将一个 Div 值的百分比添加到另一个 Div 值的百分比

jQuery 可拖动文本选择错误

javascript - 为什么这段 JavaScript 代码不起作用?