我可以在load()函数加载的元素上添加/删除类吗?

时间:2018-10-23 16:28:06

标签: javascript jquery html

我有一个带有某些CSS样式的导航栏,该导航栏的类名为“活动”。导航栏用于许多子页面,因此我发现与其在所有子页面上重复代码,不如使用load()函数加载导航栏。

问题在于,对于load()函数加载的内容,我无法使用removeClass()删除该类。导航栏已加载,我可以在检查器中看到标签,并且一切似乎都还可以。如果我将导航栏手动放在HTML中,则该代码有效。

我试图移动script标记,以在CDN脚本之后删除该类,但这样做无济于事(想法是在完全加载的页面上删除该类)。我想念什么?

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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