javascript - PopState 未按预期工作。

标签 javascript ajax

我的主页上有一个图像列表,单击后我会触发 AJAX 请求以将内容加载到灯箱。我在它们之间也有分页。每次用户单击下一个或上一个箭头时,我都会使用 PushState 更改 URL,效果很好。我的后退按钮有问题。有时我需要点击两次或更多次才能返回。当它不返回时,它只会再次重新加载相同的内容。

$(document).on("click", ".content a", function(event){
  event.preventDefault();
  var url = $(this).attr("href");
  $("body").append($overlay);
  history.pushState({}, '', url);
  $.ajax({
      url : url,
      type : 'GET',
      success : function(data){
        $overlay.append(data);
        $overlay.show();
      }
  });
});

$(document).on("click", ".fa-angle-right", function(event){
  event.preventDefault();
  var url = $(this).parent("a").attr("href");
  history.pushState({}, '', url);
  $.ajax({
      url : url,
      type : 'GET',
      success : function(data){
        $overlay.html(data);
      }
  });
});

$(window).on("popstate", function(event) {
  var url = location.href;
  $.ajax({
      url : url,
      type : 'GET',
      success : function(data){
        $overlay.html(data);
      }
  });
});

最佳答案

您很可能会两次推送相同的状态,可能事件处理程序会触发多次。

当您调试原因时,您将解决 PopState 行为不当的情况:)

关于javascript - PopState 未按预期工作。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35678324/

相关文章:

Javascript 知道何时加载新页面

javascript - 使用 Javascript 选择 Dojo ComboBox 项目

javascript - 在 Ember 中以编程方式创建新路线

javascript - 使用 ajax 更新元素直到 for 循环结束才生效

php - AJAX 防止图像被一遍又一遍地加载?

用于匹配维基百科部分文本的 Javascript 正则表达式

javascript - 在 YouTube 视频之间缓冲

JavaScript:如何从二进制字符串创建 Blob?

php - 使用ajax代码删除上传的图片文件

javascript - 验证javascript文件上的信息后如何将数据发送到php