我有一个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