我对此有疑问,它在事件时无法保持样式。如何将事件类添加到基于 URL 的导航菜单
<div class="admin_nav">
<ul>
<li><a href="admin.php">main</a></li>
<li><a href="?do=add_menu">manu</a></li>
<li><a href="?do=add_news">news</a></li>
<li><a href="#">123</a></li>
<li><a href="#">123</a></li>
<li><a href="#">123</a></li>
<li><a href="#">123</a></li>
</ul>
</div>
$(function() {
var pgurl = window.location.href.substr(window.location.href.lastIndexOf("/")+1);
$(".admin_nav ul li a").each(function(){
if($(this).attr("href") == pgurl || $(this).attr("href") == '' )
$(this).addClass("newclass");
})
});
关于这个的任何解决方案????
最佳答案
您的代码适用于完全以/admin.php
、/?do=add_news
和/#< 结尾的页面
例如对于 URL http://example.com/?do=add_news
它将起作用,但是对于 http://example.com/foobar.html?do=add_news
它不会工作(因为 ?do=add_news
前面的 foobar
)。
如果您只是担心 URL 的最后部分是否包含 href 字段中的文本,您可以将 if 语句更改为:
if($(this).attr("href") == '' || pgurl.indexOf($(this).attr("href")) > -1)
$(this).addClass("newclass");
关于jquery - 如何将事件类添加到基于 URL 的导航菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31623449/