【问题标题】:AJAX - stop scrolling to top after click eventAJAX - 点击事件后停止滚动到顶部
【发布时间】:2014-03-18 08:15:42
【问题描述】:

在特定的 ajax 事件之后,我尝试了一些方法来停止将页面滚动到顶部,但没有结果。这是一个例子:

$(".changeviewdispatch > button").each(function () {
    $(this).on("click",function(e) {
        e.preventDefault();
        var clicked_button_val = $(this).val();
        $.ajax({
            type : 'POST',
            url : 'dispatch.php',
            data: {'submitview':clicked_button_val},
            success : function (d) {
                //alert(d);
                window.location.reload(true);
            },
            //error : errorHandler
        });
        return false;
    });
});

点击后页面滚动到顶部...preventDefault 和 return false 应该不起作用...

一般问题:如何在 ajax 事件后停止滚动到顶部?

【问题讨论】:

  • window.location.reload(true); 正在重新加载页面。页面上没有完全是 AJAX 类型的动态更改。你的问题是错误的。
  • 您是否在控制台中遇到任何错误?
  • 通常使用 AJAX 的原因是为了避免重新加载页面。你为什么要显式调用reload()
  • 您的代码错误。在成功回调之后,您有一个不应存在的“,”。
  • 您必须将通过 AJAX 请求的内容放入文档中自己的某个位置才能显示出来...... f.e.使用.append 或类似的东西。

标签: javascript jquery ajax


【解决方案1】:

window.location.reload(true); 你 ajax 成功正在重新加载页面。滚动条将默认在页面刷新顶部。

在真正的AJAX 方式中,如果您希望页面保持静态,那么您需要根据来自 AJAX 调用的响应更新页面中的内容。如果您重新加载页面,那么您就错过了重点。

希望这一切都解决了。

【讨论】:

    【解决方案2】:

    1) 在body标签开始后创建mainDiv..

    2) 将下面的代码(使用 jquery)放在您想要滚动页面的位置。

    $('html, body').animate({
         scrollTop: $("#mainDiv").offset().top
     }, 2000);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 2021-02-19
      • 2014-09-08
      相关资源
      最近更新 更多