1

我试图确定一个元素的顶部偏移量并且控制台记录一个错误,即使 JQuery 的文档说它应该这样写:

$('.myObject').offset().top

错误:

未捕获的类型错误:无法读取未定义的属性“顶部”

为什么会这样?有什么解决问题的办法吗?

4

2 回答 2

4

这通常会发生,因为$('.myObject')什么都不返回。为了保护您的代码不崩溃,请在调用之前检查元素是否存在.offset().top

var myObj = $('.myObject');
if (myObj.length){
   myObj.offset().top
}

因为.top它是一个属性而不是一个方法,它不是由 jQuery 处理的,因此,如果它不存在,它将使你的脚本崩溃。

于 2013-10-25T07:10:55.393 回答
1

您必须检查该元素是否存在。

例如

var myObjExists = $('.myObject').length > 0 ? true : false;

如果你 then console.log(myObjExists);,它应该返回 true 或 false。

从这里您可以对它不存在的原因进行一些错误处理。

如果您需要更多详细信息,请同时发布此代码指向的 HTML。

于 2013-10-25T07:11:33.597 回答