所以,我的麻烦在于我有“选择器”向您显示您正在使用的菜单。我使用了两个类,selected
和unselected
类。
当页面加载时,我根据URL中的哈希加载,并且加载正常(暗示我的函数在页面加载时工作!)
现在,我有一个单独的方法,名为setSelect()
,它基本上根据在我的JS文档开头声明的变量将CSS移除/添加到菜单项。
所以这是代码(我剪了很多,只保留了相关部分)
var jlLocation = 1;
function setSelect() {
if(jlLocation==1) {
$('#location1').removeClass('unselected');
$('#location1').addClass('selected');
$('#location2').removeClass('selected');
$('#location2').addClass('unselected');
}
else if(jlLocation==2) {
$('#location1').removeClass('selected');
$('#location1').addClass('unselected');
$('#location2').removeClass('unselected');
$('#location2').addClass('selected');
}
}
$(function(){
// Bind an event to window.onhashchange that, when the hash changes, gets the
// hash and adds the class "selected" to any matching nav link.
$(window).hashchange( function(){
hash = location.hash;
document.title = 'Joy Luck ' + ( hash.replace( /^#/, '- ' ) || '' ) + ''; // Set the page title based on the hash.
setSelect();
if (hash == "#Home") {
showHome();
}
else if (hash == "#Accommodations") {
showAccommodations();
}
$('#menu a').each(function(){
var that = $(this);
that[ that.attr( 'href' ) == hash ? 'addClass' : 'removeClass' ]( 'selected' );
});
})
$(window).hashchange();
});
同样,如果我加载#home
哈希或#accommodations
这些方法运行,但setSelect();
方法不起作用。所有方法都放在加载哈希值的方法之前,因此不应该是一个问题。
修改
我知道setSelect()
没有被调用。那是因为无论我在那个方法中调用它,它都没有用。但是,为了帮助我,我把它放进去了。
答案 0 :(得分:0)
问题是你从不调用setSelect()
函数(或者至少你的代码显示)