jQuery中的“null或not object”错误

时间:2012-11-14 08:58:37

标签: 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;
 });

该网站为http://sputtens.com

1 个答案:

答案 0 :(得分:5)

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

只需将代码更改为:

var id = $(this).attr('rel');
var element = $("#"+id);
var l = element.position().left;

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