我的网站适用于IE8以外的所有浏览器。具有position().left
的第四行代码上的以下代码错误为null或不是对象。有没有人看到修复过这种类型的IE8 jQuery错误?
$(".navref").click(function(){
var m = Math.floor(($(window).width()-997)/2);
m = m < 0 ? 0 : m; //if screen is smaller than 997, force align to left
var l = $("#"+$(this).attr('rel')).position().left;
var lt = 200;
if($(this).attr('rel') == 'page1') lt = 400;
l = l+(lt-m);
l = l < 0 ? 0 : l;
//,onAfter:function(){checkScreens()}
$('html, body').stop(true,false).scrollTo(l,2000,{easing:'easeInOutCubic'});
return false;
});
该网站为http://sputtens.com。
答案 0 :(得分:5)
这告诉您$("#"+$(this).attr('rel'))
与任何元素都不匹配,因此position()
会返回null
。如果你发现原因,那就应该解决它。
只需将代码更改为:
var id = $(this).attr('rel');
var element = $("#"+id);
var l = element.position().left;
...并使用F12调试工具查看它,查看id
并将其与DOM中的内容进行比较,查看具有该ID的元素的查询结果等