我有一个页面顶部有两个部分映射,底部有jQuery手风琴菜单当我点击手风琴菜单页面滚动到顶部时,我需要页面应该保持在同一个地方所以我可以看到jQuery手风琴菜单正常。
反正有没有阻止这个?那么当我点击菜单时,页面应该保持在浏览器中的相同位置?
menu.find('ul li > a').bind('click',function(event,ui){
/*var ahref = $(event.currentTarget).attr('href');
if(ahref!='#'){
window.location.href = ahref;
}else{*/
var currentlink=$(event.currentTarget);
if (currentlink.parent().find('ul.active').size()==1)
{
currentlink.parent().find('ul.active').slideUp('medium',function(){
currentlink.parent().find('ul.active').removeClass('active');
});
}
else if (menu.find('ul li ul.active').size()==0)
{
show(currentlink);
}
else
{
menu.find('ul li ul.active').slideUp('medium',function(){
menu.find('ul li ul').removeClass('active');
show(currentlink);
});
}
/* }*/
});
滚动手风琴菜单
答案 0 :(得分:1)
您需要在点击事件功能结束时添加return false
或event.preventDefault()
,否则浏览器会点击您点击的<a href="#">
链接,方法是附加#
到页面URI,指示浏览器在页面上找到命名的锚点。由于您没有提供锚名称(例如http://www.url.com/page#
而不是http://www.url.com/page#anchorname
),因此浏览器会跳转到页面顶部。
例如
menu.find('ul li > a').bind('click',function(event, ui){
// your code
// choose one of the following lines
return false
event.preventDefault()
});
答案 1 :(得分:0)
您可以使用stopPropagation,event.preventDefault or return false ...
或者只需将href
更改为javascript:void(0)
。