我对jQuery和javascript有点新,昨天刚刚实现了一个新代码来处理菜单周围的一些样式。当主页加载时,虽然它正在做某事,但它并不能正常工作。当我导航到另一个页面然后回来时,它工作正常。这是第一次给我带来悲伤的负担。任何人都可以帮我弄清楚我的代码有什么问题吗?
这是我的代码:
$(function(){
var url = window.location.pathname,
urlRegExp = new RegExp(url.replace(/\/$/,'') + "$");
$('.nav ul li a').each(function(){
if(urlRegExp.test(this.href.replace(/\/$/,''))){
$(this).attr('id', 'selected');
}
});
$(function() {
if (url === "/index.html" || url === "/") {
$('.nav').attr('id','homenav');
}
});
});
答案 0 :(得分:1)
如果问题只是当/
与/index.html
页面相同时,为什么不在检查前制作/
/index.html
..就像这样:
$(function(){
var url = window.location.pathname;
if(url == '/')
{
url = '/index.html';
}
var urlRegExp = new RegExp(url.replace(/\/$/,'') + "$");
$('.nav ul li a').each(function(){
if(urlRegExp.test(this.href.replace(/\/$/,''))){
$(this).attr('id', 'selected');
}
});
$(function() {
if (url === "/index.html") {
$('.nav').attr('id','homenav');
}
});
});
答案 1 :(得分:0)
你必须将你的javascript包装在其中:
$(document).ready(function(){
$(function(){
var url = window.location.pathname,
urlRegExp = new RegExp(url.replace(/\/$/,'') + "$");
$('.nav ul li a').each(function(){
if(urlRegExp.test(this.href.replace(/\/$/,''))){
$(this).attr('id', 'selected');
}
});
$(function() {
if (url === "/index.html" || url === "/") {
$('.nav').attr('id','homenav');
}
});
});
});
我想。
那是所有人