0

私の Web サイトは、IE8 を除くすべてのブラウザーで動作します。コードの 4 行目にある次のコード エラーは、position().leftnull またはオブジェクトではありません。このタイプの 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;
 });

Web サイトは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デバッグツールを使用してそれをウォークスルーし、idそれをDOMにあるものと比較し、そのIDを持つ要素のクエリの結果を確認します。

于 2012-11-14T09:01:38.693 に答える