当使用IE10时,我在尝试单击同一项目中的网页的超链接时收到错误JavaScript runtime error: Unable to get property 'top' of undefined or null reference
,JavaScript应该滚动到页面上的相应位置。
如果我使用任何其他浏览器,除了IE之外,它可以在页面之间工作。但是,如果我在同一页面中使用相同的引用,它将在所有浏览器中向上和向下滚动,但在离开页面时不在IE中。
链接
<li><a href="index.html#home_section">Home</a></li>
我正在使用jquery.nav.js
版本3.0.0,页面在var offset = $(target).offset().top;
处中断。
非常感谢任何帮助: - )
答案 0 :(得分:2)
Jquery offset()存在一些问题。如果浏览器是IE,则任何元素的顶部计算。 要解决此问题,您可以使用本机Javascript计算顶部和左侧的元素偏移量,并相应地使用它。这里 - 在Javascript方法下,为文档中的任何元素返回计算的top和left的对象,它将适用于所有浏览器:
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};
}
示例:var offset = findTotalOffset($(target))。top;