我有以下代码,其中脚本检查li链接,如果在url地址中找到该链接,则添加一个类,子ul将扩展。
这适用于子页面,但在网站的根目录上,所有li的节目都向下滑动,就好像未检测到主链接中的url一样。我认为它与正斜杠有关,因为主页没有它。
有什么想法吗?
$(function(){
var url = window.location.pathname,
urlRegExp = new RegExp(url.replace(/\/$/,'') + "$"); // create regexp to match current url pathname and remove trailing slash if present as it could collide with the link in navigation in case trailing slash wasn't present there
// now grab every link from the navigation
$('#cssmenu > ul > li > a').each(function(){
// and test its normalized href against the url pathname regexp
if(urlRegExp.test(this.href.replace(/\/$/,''))){
$('#cssmenu li').removeClass('active');
$(this).children('li').addClass('active');
var checkElement = $(this).next();
if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
$(this).children('li').addClass('active');
checkElement.slideDown('normal');
}
if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$('#cssmenu ul ul:visible').slideUp(50);
checkElement.slideDown(800);
}
if($(this).children('li').find('ul').children().length ==0) {
return true;
} else {
return false;
}
}
});
});
答案 0 :(得分:0)
如果urlRegExp为空,那么早期返回怎么样?它应该在你的根路径上。
假设您不希望在您的根页面上发生任何其他事情,那么
if(urlRegExp.length == 0){
//root page
} else {
//other page (what you are doing now)
}