首页 > 解决方案 > 我可以在 load() 函数加载的元素上添加/删除类吗?

问题描述

我有一个导航栏,其类名为“active”,带有一些 CSS 样式。导航栏用于许多子页面,所以我发现不是在所有子页面上重复代码,而是使用load()功能加载导航栏。

问题是,通过load()函数加载的内容,我无法使用removeClass(). 导航栏已加载,我可以在检查器中看到标签,一切似乎都很好。如果我将导航栏手动放在 HTML 中,代码就可以工作。

我试图script在 CDN 脚本之后移动删除类的标签,但它没有帮助(想法是在完全加载的页面上删除类)。我错过了什么?

我正在使用以下代码加载导航栏:

$(function(){
  $("#includeNavbar").load("../partials/navbar.html"); 
});

然后我在 HTML 中放了一个标签:

<div id="includeNavbar"></div>  

然后我<script>在 HTML 中使用标签,但下面的代码不会删除类:

<script>
  $("li").removeClass("active");
  $("li").eq(1).addClass("active");             
</script>

标签: javascriptjqueryhtml

解决方案


问题是你在哪里打电话removeClass()和从哪里来addClass()。您需要在 的回调中执行此操作load(),以确保在执行这些调用时内容存在于 DOM 中:

$(function(){
  $("#includeNavbar").load("../partials/navbar.html", function() {
    $("li").removeClass("active").eq(1).addClass("active");
  }); 
});


推荐阅读