jQuery中的"null或not object"错误

0 javascript jquery internet-explorer-8

我的网站适用于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;
 });
Run Code Online (Sandbox Code Playgroud)

该网站是http://sputtens.com.

T.J*_*der 5

这告诉您$("#"+$(this).attr('rel'))不匹配任何元素,因此position()返回null.如果你发现原因,那就应该解决它.

只需将代码更改为:

var id = $(this).attr('rel');
var element = $("#"+id);
var l = element.position().left;
Run Code Online (Sandbox Code Playgroud)

...并使用F12调试工具查看id它,查看并将其与DOM中的内容进行比较,查看具有该ID的元素的查询结果等.