javascript - ajax 调用在 IE 兼容模式下触发两次

标签 javascript jquery ajax

这是我正在使用的代码片段:

 var $container = $('#myNumRows');  
$container.scroll(function () {
   if ($container.scrollTop() == 0) {
    addRows('Top'); 
   } else if ($container.innerHeight() + $container.scrollTop() >= $container[0].scrollHeight ) {
     addRows('Bottom');
   } 

addRows 是一个带有参数的函数,用于标注“Top”或“Bottom”。

在 IE 兼容模式下,滚动到底部时会添加两次行。如果不在兼容模式下则不会发生,并且在任何其他浏览器(chrome、firefox)中也不会发生。我尝试在不同的地方使用超时,并且尝试使用 underscore.js 使用 debounce 进行多次迭代,但无论我做什么,当它到达滚动底部时,它都会在IE兼容模式。

谁能告诉我为什么会发生这种情况?

最佳答案

这看起来像一个 IE 兼容模式错误。 从我的 Angular 来看,最好的解决方案是添加一个变量,该变量需要在添加更多行之前再次向上滚动,如下所示:

var $container = $('#myNumRows'), bottom = false, top = false;  
$container.scroll(function () {
if ($container.scrollTop() == 0) {
  if (!top) {
    top = true;
    addRows('Top'); 
  } else {
    top = false;
  }
} else if ($container.innerHeight() + $container.scrollTop() >= $container[0].scrollHeight) {
  if (!bottom) {
    bottom = true;
    addRows('Bottom');
  } else {
    bottom = false;
  }
}

关于javascript - ajax 调用在 IE 兼容模式下触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30603569/

相关文章:

javascript - 减少表单垃圾邮件

jquery - 使用 jquery 在日期和月份选择列表中发布

javascript - ECONFLICT 无法找到适合 jquery Foundation 的版本

javascript - 将 JSON 数组中的对象添加到 JavaScript 数组中,并重新映射键

javascript - Ajax post-跨域请求XDR

javascript - 使用 angularJS 在 Ionic 应用程序中的两个页面之间传递值

javascript - 内容扩展时图像错位

javascript - 普通 JS : make 80% width element 100% IF contains an image

jquery - 如何恢复 "default"按钮样式

jquery - Ajax 调用在 sling 中移动文件