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

Jquery triggering function after attr() does not work

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

我的 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 页面但不滚动 :/

提前致谢!

马丁

假设 location 在您的示例中针对 window.location 以更改浏览器 URL...

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

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

例如

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

或更好只是:

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

  • 或者向新页面传递一些东西来告诉它滚动到哪里