使用jQuery突出显示菜单-在POST上不起作用
我在使用jQuery突出显示用户选择的菜单项时遇到了一个问题 这是我的代码(在Site.Master中):使用jQuery突出显示菜单-在POST上不起作用,jquery,Jquery,我在使用jQuery突出显示用户选择的菜单项时遇到了一个问题 这是我的代码(在Site.Master中): $(函数(){ $(“#水平菜单ul li a”).live('单击',函数(){ $(“#水平菜单ul li”).removeClass('current'); $(this).closest('li').addClass('current'); }); }); 当我使用Firebug进行跟踪时,这是可行的,但是类被更改了,然后页面重新加载,我丢失了类更改。我做错了什么?您的页面需要
$(函数(){
$(“#水平菜单ul li a”).live('单击',函数(){
$(“#水平菜单ul li”).removeClass('current');
$(this).closest('li').addClass('current');
});
});
当我使用Firebug进行跟踪时,这是可行的,但是类被更改了,然后页面重新加载,我丢失了类更改。我做错了什么?您的页面需要重新加载吗?如果没有,则在事件处理程序中传入一个事件对象并调用
stopPropagation()
,这样它就不会重新加载页面
<script type="text/javascript">
$(function () {
$('#horizontalmenu ul li a').live('click', function (event) {
$('#horizontalmenu ul li').removeClass('current');
$(this).closest('li').addClass('current');
event.stopPropagation();
});
});
</script>
$(函数(){
$(“#水平菜单ul li a”).live('单击',函数(事件){
$(“#水平菜单ul li”).removeClass('current');
$(this).closest('li').addClass('current');
event.stopPropagation();
});
});
您的页面是否需要重新加载?如果没有,则在事件处理程序中传入一个事件对象并调用stopPropagation()
,这样它就不会重新加载页面
<script type="text/javascript">
$(function () {
$('#horizontalmenu ul li a').live('click', function (event) {
$('#horizontalmenu ul li').removeClass('current');
$(this).closest('li').addClass('current');
event.stopPropagation();
});
});
</script>
$(函数(){
$(“#水平菜单ul li a”).live('单击',函数(事件){
$(“#水平菜单ul li”).removeClass('current');
$(this).closest('li').addClass('current');
event.stopPropagation();
});
});
我认为,当您重新加载页面时,文档被重新加载,您丢失了所有上次更改。
如果要突出显示菜单项,应使用cookie保存当前菜单项索引。
但我的网站中使用了另一个代码:
$(".menu li a").each(function() {
$(this).removeClass();
if (document.location.href.indexOf($(this).attr("href")) > 0)
{
$(this).addClass("menuactive");
}
});
我认为,当你重新加载页面时,文档被重新加载,你丢失了所有最后的更改。 如果要突出显示菜单项,应使用cookie保存当前菜单项索引。 但我的网站中使用了另一个代码:
$(".menu li a").each(function() {
$(this).removeClass();
if (document.location.href.indexOf($(this).attr("href")) > 0)
{
$(this).addClass("menuactive");
}
});