我有一個MasterPage中的SharePoint ASPMenu,我嘗試使用jQuery更改選定的樣式類。基本上,當用戶點擊一個菜單項時,它會導致回發,這樣頁面將被定向到點擊菜單的url。當用戶點擊一個菜單項時,我把這個URL放在cookie中。然後,當頁面加載時,我將設置所選菜單的樣式。這裏是我到目前爲止的代碼jQuery addclass和刪除類沒有正確更新
$(document).ready(function() {
LinkClicked();
FireMe();
});
function FireMe()
{
var val = $.cookie('sabValue');
if(val !== null)
{
$(".s4-tn a").each(function(){
$(this).removeClass("selected").closest("li").removeClass("selected");
});
$(".s4-tn a[href='"+val+"']").addClass("selected").closest("li").addClass("selected");
}
}
function LinkClicked(){
$(".s4-tn a").click(function() {
var sabValue = $(this).attr("href");
$.cookie('sabValue',sabValue);
});
}
我的問題是,頁面加載後(在用戶點擊後菜單)的變化不會發生。我必須再次單擊菜單項,以便應用所選樣式。
這是ASPMenu聲明
<SharePoint:AspMenu
ID="TopNavigationMenuV4"
Runat="server"
EnableViewState="false"
DataSourceID="topSiteMap"
AccessKey="<%$Resources:wss,navigation_accesskey%>"
UseSimpleRendering="true"
UseSeparateCss="false"
Orientation="Horizontal"
StaticDisplayLevels="2"
MaximumDynamicDisplayLevels="2"
SkipLinkText=""
CssClass="s4-tn"/>
這究竟是爲什麼。 欣賞任何幫助。 謝謝
請將您生成的HTML和JS代碼發佈到jsfiddle.net。 ()。s4-tn a「)。each(function()...並不是最好的方法,你可以直接寫$('。selected',$('。s4-tn ')).removeClass('selected'); – 2012-03-11 18:35:28