当我将“#”从 href 替换为 URL 时,我的“事件”类不起作用。当我点击链接时,页面刷新并且“事件”类没有改变。 这是我将 # 更改为 URL 之前的工作代码。
<ul class="additional-menu">
<li class="active"><a href="#">Link1</a></li>
<li><a href="#" id="link2">Link2</a>
<ul>
<li><a href="#" id="link2.1">Link2.1</a></li>
</ul>
</li>
<li><a href="#" id="link3">Link3</a></li>
J查询:
$('.additional-menu a').on('click', function() {
var t = $(this);
t.parents('.additional-menu').find('li').removeClass('active');
t.parentsUntil('.additional-menu', 'li').addClass('active');
})
更改后(不工作):
<ul class="additional-menu">
<li class="active"><a href="link1.php">Link1</a></li>
<li><a href="link1.php" id="link2">Link2</a>
<ul>
<li><a href="link2-1.php" id="link2.1">Link2.1</a></li>
</ul>
</li>
<li><a href="link3.php" id="link3">Link3</a></li>
</ul>
最佳答案
当您单击 URL 链接时,页面正在刷新,当前的 Jquery 将不再工作。您必须根据页面 URL 页面加载 或DOM 就绪 而不是 onClick 更新您的代码以确定事件菜单。
您必须将事件类设置为将找到的文件名作为 href 属性的菜单。
这里是使用 jquery 选择器的完整代码:
$(document).ready(function(){
var fullpath =window.location.pathname;
var filename=fullpath.replace(/^.*[\\\/]/, '');
//alert(filename);
var currentLink=$('a[href="' + filename + '"]'); //Selects the proper a tag
currentLink.parent().addClass("active");
}))
关于javascript - JQuery在重新加载时将事件类添加到父类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37078610/