0

我的网站适用于除 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

4

1 回答 1

5

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

只需将代码更改为:

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

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

于 2012-11-14T09:01:38.693 回答