我在http://www.optiekmeulemeester.be/normal有一个带滑动导航的网页。使用以下代码会发生这种情况:
$(".link").click(function(){
var link = $(this).attr('href');
$("#middle").scrollTo(link, 800);
return false;
});
这有效,但现在我正在尝试使用jQuery Address(http://www.asual.com/jquery/address/)启用后退按钮。我的代码已更改为:
$.address.change(function(event){
var link = event.pathNames[0] || '#panel1';
if(link != '#panel1'){ link = '#' + link;}
$("#middle").scrollTo(link, 800);
});
所有.link点击的代码也被注释掉,返回false。
我的后退按钮启用,大部分都可以正常工作,您可以在http://www.optiekmeulemeester.be/test查看和测试。我确定它需要针对特殊情况进行调整,但在我进入之前,最大的问题是我的动画不再适用了。
*编辑:我现在看到它有时会起作用,有时它不会。无法找到它的逻辑。以及通过后退按钮点击链接?!?有人得到我的错误吗?
这是因为动画的调用是在地址通过标准a(nchor)行为改变之后发生的吗?
提前致谢。
答案 0 :(得分:1)
1我发现的答案可能是一种解决方法:
$.address.change(function(event){
var link = event.pathNames[0] || '#panel1';
if(link != '#panel1'){ link = '#' + link;}
$("#middle").scrollTo(link, 800);
});
$(".link").click(function(){
var link = $(this).attr('href');
$("#middle").scrollTo(link, 800);
return true;
});
$ .address.change函数中的相同代码+ $(“。link”)中的另一次。单击+返回true以便触发address.change。
现在工作:)。如果你有更好的东西让我知道!
答案 1 :(得分:1)
尝试以下内容:
$.address.change(function(event){
$("#middle").scrollTo('#' + (event.pathNames[0] || 'panel1'), 800);
});
$(".link").address();
很少有人建议: