CSS所以,我的問題是,我有「選擇」,告訴你什麼你菜單上。我使用兩個類,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()
沒有被調用。那是因爲無論我用那種方法稱呼它,它都不起作用。但是,爲了幫幫忙,我把它英寸
它是一個錯字代碼缺少}上第一個函數關閉它?你真的需要重用選擇器。不要多次執行$('#location1')。鏈接他們! $( 「XXX」)addClass( 「X」)removeClass( 「Y」)。; – epascarello 2011-05-07 21:36:37
對不起,它沒有存活我的粘性複製和粘貼方法。它存在於我的原始代碼中。 – Johannes 2011-05-07 21:37:35
什麼叫setSelect()? – epascarello 2011-05-07 21:41:04