Jquery 在页面加载时添加/删除CSS
所以,我的问题是,我有“选择器”,可以显示你在哪个菜单上。我使用两个类,选择的Jquery 在页面加载时添加/删除CSS,jquery,hash,Jquery,Hash,所以,我的问题是,我有“选择器”,可以显示你在哪个菜单上。我使用两个类,选择的类和未选择的类 当页面加载时,我根据URL中的哈希值加载,加载效果很好(这意味着页面加载时我的函数可以工作!) 现在,我有一个单独的方法,名为setSelect(),它基本上是基于JS文档开头声明的变量将CSS删除/添加到菜单项中 下面是代码(我删掉了很多,只保留了相关部分) 同样,如果我加载#home散列或#调节这些方法会运行,但是setSelect()方法不起作用。所有方法都放在加载散列的方法之前,因此这不应该成为
类和未选择的类
当页面加载时,我根据URL中的哈希值加载,加载效果很好(这意味着页面加载时我的函数可以工作!)
现在,我有一个单独的方法,名为setSelect()
,它基本上是基于JS文档开头声明的变量将CSS删除/添加到菜单项中
下面是代码(我删掉了很多,只保留了相关部分)
同样,如果我加载#home
散列或#调节
这些方法会运行,但是setSelect()代码>方法不起作用。所有方法都放在加载散列的方法之前,因此这不应该成为问题
编辑
我知道没有调用setSelect()
。这是因为无论我在那个方法中调用它,它都不起作用。但是,为了帮助解决这个问题,我把它放了进去。问题是你从来没有调用过setSelect()
函数(或者至少你的代码显示了这一点)你的代码在第一个关闭它的函数上缺少一个}是不是打字错误?此外,您确实需要重用选择器。不要多次使用$(“#location1”)。把他们锁起来$(“xxx”).添加类(“x”).删除类(“y”);很抱歉,它无法通过我的粘性复制和粘贴方法。它存在于我的原始代码中。变量jlLocation
从未更改。这是正确的,在本例中它没有更改。但是这不是问题,因为即使是1,条件也会触发。但问题是这个方法没有。这是我的错误。我把它拿走了,因为它实际上什么也没做。
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();
});