我在单击内部链接时尝试将类添加到 li 元素,并导航到该网址,但是在加载页面后该类会消失。 那么如何在页面加载后添加类?
<ul>
<li class="tab"><a href="./my_page.html" class="li-trigger">My Page</a></li>
<li class="tab"><a href="./some_page.html">Some Page</a></li>
<li class="tab active"><a href="./some_page2.html">Another Page</a></li>
</ul>
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery('.li-trigger').click(function (event){
jQuery(this).parent('li').addClass('active').siblings().removeClass('active');
});
});
</script>
答案 0 :(得分:2)
您需要在页面加载时执行此操作,而不是在单击处理程序中执行此操作。迭代链接并将href与当前页面网址进行比较
$(function(){
var pageUrl = location.href;
$('.tab a').each(function(){
$(this).parent().toggleClass('active', this.href === pageUrl);
});
})
答案 1 :(得分:1)
的jQuery
$(document).ready(function(){
var path = window.location.pathname;
$('.li-trigger[href="'+path+'"]').parent('li').addClass('active').siblings().removeClass('active');
});
这会找到.li-trigger的href并将相应的活动类添加到
答案 2 :(得分:0)
您的网页不记得事情。但是,您可以使用localStorage创建一个内存,用户单击该按钮。
jQuery(document).ready(function(){
jQuery('.li-trigger').click(function (event){
jQuery(this).parent('li').addClass('active').siblings().removeClass('active');
localStorage.setItem('clicked', 'yes');
});
if(localStorage.getItem('clicked')) {
jQuery('.li-trigger').click();
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<ul>
<li class="tab"><a href="./my_page.html" class="li-trigger">My Page</a></li>
<li class="tab"><a href="./some_page.html" class="li-trigger">Some Page</a></li>
<li class="tab active"><a href="./some_page2.html" class="li-trigger">Another Page</a></li>
</ul>
&#13;
(代码不适用于stacksnippets,尝试实时制作)