【问题标题】:Unable to get property 'offset' of undefined or null reference无法获取未定义或空引用的属性“偏移”
【发布时间】:2016-04-18 05:03:40
【问题描述】:

我为广告制作了加载更多功能

在 Chrome 和 FireFox 中没有问题,当我尝试在 IE(版本 10)中选择时,显示以下 JavaScript 错误: “无法获取未定义或空引用的属性‘偏移’” 我想我已经在 Object 以外的类型的对象上调用了方法或属性,或者在需要 Object 时传递了 Object 以外的类型的参数。 所以我尝试了以下没有帮助的代码:

function findElementTotalOffset(obj) {
    var oleft = otop = 0;
    if (obj.offsetParent) {
        do {
            oleft += obj.offsetLeft;
            otop += obj.offsetTop;
        } while (obj = obj.offsetParent);
    }
    return {left : oleft, top : otop};
}

任何帮助将不胜感激:-)

import $ from "jquery"
class LazyLoadAds {
  constructor() {
    this.initLazyLoad = this.initLazyLoad.bind(this)
    this.initLazyLoad()
  }
  initLazyLoad() {
    let self = this,
    listener = self.throttle(300, function () {
        slotsAtlantic.forEach(function (item) {
            let $item = $('#' + item.id)



  if ($item.length) {
              let $parent = $item.parent(),
              index = slotsAtlantic.indexOf(item)
              if ($parent.is(':visible') && ((window.scrollY || window.pageYOffset) >= ($parent.offset().top - $(window).height() - 300))) {
                  googletag.cmd.push(function () {
                      googletag.pubads().refresh([item.slot]);
                  });
                  slotsAtlantic.splice(index, 1);
              }
            }
        });
    });
    window.addEventListener('scroll', listener)
  }

  throttle(delay, callback) {
    var previousCall = new Date().getTime();
    return function () {
        var time = new Date().getTime();
        if ((time - previousCall) >= delay) {
            previousCall = time;
            callback.apply(null, arguments);
        }
    };
  }
}

export default LazyLoadAds

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您似乎得到了一个没有父元素的元素。

    所以当你写:let $parent = $item.parent() 时,$parent 为空。

    当你想获取$parent.offset()时会启动异常。

    您是否尝试记录您获得的每个元素?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-01
      • 2020-04-28
      • 2016-08-16
      • 2017-05-18
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多