Javascript 动态导航栏jquery addClass()不执行任何操作
所以,我真的不知道我做错了什么。我有一个动态主页,它使用Javascript 动态导航栏jquery addClass()不执行任何操作,javascript,php,jquery,Javascript,Php,Jquery,所以,我真的不知道我做错了什么。我有一个动态主页,它使用switch语句来更改内容 我想做的是,当我在“那个”页面时,让导航栏获得一个class=“active”。我找了很长时间,但就是找不到 My homepage.php: <?php include'inc/header.php'; include'inc/navbar.php'; if (!empty($_GET['page'])) { switch ($_GET['page']) { default; inc
switch
语句来更改内容
我想做的是,当我在“那个”页面时,让导航栏获得一个class=“active”
。我找了很长时间,但就是找不到
My homepage.php:
<?php
include'inc/header.php';
include'inc/navbar.php';
if (!empty($_GET['page'])) {
switch ($_GET['page']) {
default;
include 'inc/pages/homepage.php';
break;
case 'inc/pages/homepage.php':
include 'inc/pages/homepage.php';
break;
case 'inc/pages/page2.php':
include 'inc/pages/page2.php';
break;
}
}else{
include 'inc/pages/homepage.php';
}
include 'inc/footer.php';
?>
单击链接时,浏览器将加载一个新页面。因此,您的JavaScript函数已执行,但随后加载了新页面,其中JavaScript函数尚未执行 尝试签入当前页面的
navbar.php
,并使用php相应地添加类
比如说
<nav>
<a href="/?page=inc/pages/homepage.php" class="<?php if ($_GET['page'] == 'inc/pages/homepage.php') echo " -active"; ?>">Home</a>
....
</nav>
....
为什么不直接在PHP中执行此操作?$('nava').addClass(“active”);使用this而不是$(this).addClass(“active”);这并不重要,他在click()函数中,$(这个)将属于他单击的任何元素。抱歉,我没有注意到click事件
$(document).ready(function(){
$('nav a').click(function(){
$('nav a').removeClass("active");
$(this).addClass("active");
});
});
$(document).on("click", 'nav a', function(){
$('nav a').removeClass("active");
$(this).addClass("active");
});
<nav>
<a href="/?page=inc/pages/homepage.php" class="<?php if ($_GET['page'] == 'inc/pages/homepage.php') echo " -active"; ?>">Home</a>
....
</nav>