Javascript 我可以在load()函数加载的元素上添加/删除类吗?
我有一个名为“active”的navbar类,带有一些CSS样式。navbar在许多子页面上使用,因此我发现我将使用Javascript 我可以在load()函数加载的元素上添加/删除类吗?,javascript,jquery,html,Javascript,Jquery,Html,我有一个名为“active”的navbar类,带有一些CSS样式。navbar在许多子页面上使用,因此我发现我将使用load()函数加载navbar,而不是在所有子页面上重复代码 问题是,对于由load()函数加载的内容,我无法使用removeClass()删除该类。导航栏已加载,我可以在inspector中看到标签,一切似乎都正常。如果我在HTML中手动放置导航栏,代码就可以运行了 我尝试在CDN脚本之后移动删除类的script标记,但没有帮助(想法是在完全加载的页面上删除类)。我错过了什么
load()
函数加载navbar,而不是在所有子页面上重复代码
问题是,对于由load()
函数加载的内容,我无法使用removeClass()
删除该类。导航栏已加载,我可以在inspector中看到标签,一切似乎都正常。如果我在HTML中手动放置导航栏,代码就可以运行了
我尝试在CDN脚本之后移动删除类的script
标记,但没有帮助(想法是在完全加载的页面上删除类)。我错过了什么
我正在使用以下代码加载导航栏:
$(function(){
$("#includeNavbar").load("../partials/navbar.html");
});
然后我在HTML中添加了一个标记:
<div id="includeNavbar"></div>
然后我在HTML中使用
标记,但下面的代码不会删除类:
<script>
$("li").removeClass("active");
$("li").eq(1).addClass("active");
</script>
$(“li”).removeClass(“活动”);
$(“li”).eq(1).addClass(“活动”);
问题在于从何处调用removeClass()
和addClass()
。您需要在load()
的回调中执行此操作,以确保在执行这些调用时DOM中存在内容:
$(function(){
$("#includeNavbar").load("../partials/navbar.html", function() {
$("li").removeClass("active").eq(1).addClass("active");
});
});
.load()
是异步的,因此很可能在加载完成之前执行添加/删除类。尝试使用loads()的回调函数谢谢!当我将first()改为eq(1)时,它起作用了,因为我的目标是第二个元素(second()不起作用)。你能告诉我你为什么选择first()而不是eq()?对不起-first()
是我的错,我误读了代码:)很高兴你让它工作了