attr()之后的Jquery触发函数不起作用

时间:2015-05-06 15:13:52

标签: javascript jquery scroll jquery-animate

我想要实现的是,如果有人点击菜单中的指定链接,它会重定向到主页,然后滚动到特定内容。

我的Jquery代码很简单:

$(document).ready(function () {        
  $("#upbar li:nth-of-type(2)").click(function(){
    $(location).attr('href', 'index.html');
    $('html,body').animate({
      scrollTop: $("#samples").offset().top}, 700);
    });
  });

它重定向到index.html页面但不滚动:/

提前谢谢!

马丁

1 个答案:

答案 0 :(得分:2)

假设location在您的示例中定位window.location以更改浏览器网址...

更改浏览器的location将加载新页面并丢弃正在运行的jQuery / JavaScript。 $('html,body').animate(永远不会在预期的新页面上运行。

  • 为什么不直接使用书签锚点到目标页面?

e.g。

$(location).attr('href', 'index.html#samples');

或者更好,只是:

location.href = "index.html#samples";
  • 或者您可以使用Ajax加载页面,因此您的代码保持驻留

  • 或者将某些内容传递给新页面,告诉它在哪里滚动