javascript - JQuery在重新加载时将事件类添加到父类

标签 javascript php jquery

当我将“#”从 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/

相关文章:

javascript - 显示模态时的 "aria-hidden elements do not contain focusable elements"问题

javascript - {尚无答案}从YouTube JSON Api获取评论分数

php数组将一个数组的值添加到另一个数组

php - 使用事务从多个表中获取数据

jquery。如果链接的 href 中包含 'text'。隐藏链接

javascript - 如何在 jQuery 方法中打开特定类的链接

jquery - Materialise slider 在 asp.net mvc 中不起作用

javascript - 正则表达式捕获组到大写

javascript - Javascript Map 函数是异步的吗?

php - get_headers() 检查站点是否在线的可靠性如何?