JavaScript运行时错误:无法获取属性';顶部';指未定义的或空的引用
使用IE10时,我遇到错误JavaScript运行时错误:无法获取属性';顶部';指未定义的或空的引用,javascript,jquery,html,internet-explorer,internet-explorer-10,Javascript,Jquery,Html,Internet Explorer,Internet Explorer 10,使用IE10时,我遇到错误JavaScript运行时错误:无法获取未定义或空引用的属性“top”当尝试单击指向同一项目内网页的超链接时,JavaScript应滚动到页面上的相应位置 如果我使用IE以外的任何其他浏览器,它都可以从一页到另一页工作。但是,如果我在同一页面中使用相同的引用,它将在所有浏览器中上下滚动,但在离开页面时不会在IE中滚动 链接 <li><a href="index.html#home_section">Home</a></li>
JavaScript运行时错误:无法获取未定义或空引用的属性“top”
当尝试单击指向同一项目内网页的超链接时,JavaScript应滚动到页面上的相应位置
如果我使用IE以外的任何其他浏览器,它都可以从一页到另一页工作。但是,如果我在同一页面中使用相同的引用,它将在所有浏览器中上下滚动,但在离开页面时不会在IE中滚动
链接
<li><a href="index.html#home_section">Home</a></li>
我正在使用jquery.nav.js
3.0.0版,页面在var offset=$(target.offset().top代码>
任何帮助都将不胜感激:-)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($(目标)).top这有帮助吗<代码>scrollTo:function(target,callback){var offset=$(target).offset().top;$(“html,body”).animate({scrollTop:offset},this.config.scrollSpeed,this.config.easing,callback);},
完整代码可在https://github.com/davist11/jQuery-One-Page-Nav