这是我的活动状态工作的代码,问题是区分大小写。例如,假设您单击其中一个菜单选项卡,您可以使活动状态正常工作,但如果您尝试手动更改网址而不是让我们说大写,那么它将无效。
如何使脚本工作,以便在再次检查URL中的内容时不考虑区分大小写?
全部谢谢!
$(document).ready(function() {
$("ul#menu li a").wrapInner("<span></span>");
$("ul#menu li a span").css({
"opacity": 0
});
$("ul#menu li a").hover(function() {
$(this).children("span").animate({
"opacity": 1
}, 400);
}, function() {
$(this).children("span").animate({
"opacity": 0
}, 400);
});
}); /**ACTIVE STATE SCRIPT**/
$(function() {
var pathname = window.location.pathname;
var page = pathname.match(/\/([^\/]+\.[^\/]+)/i)[1];
var target = $('#menu a').filter(function() {
console.log($(this).attr('href'), page);
return $(this).attr('href').toLowerCase().indexOf(page.toLowerCase()) > -1;
});
$(target).addClass('active');
});
答案 0 :(得分:1)
首先,将你的正则表达式更改为:
var page = pathname.match(/\/([^\/]+\.[^\/]+)/i)[1];
然后你的选择器:
var target = $('#menu a').filter(function(){
return $(this).attr('href').toLowerCase().indexOf(page.toLowerCase()) > -1;
});