1

我试图弄清楚为什么我不能在 IE7 中顺利滚动回页面顶部。所以我注释掉了我的主要代码,只是想看看带有偏移量的目标的值是多少。如果我将以下代码放入 IE7...

function scrollbackup() {
    //setup anchor links for each panel

    //create the links for each section
    var link = '<a class="top" href="#mapSVG">[back to top]</a>';
    $('#mMap a').each(function () {
        $(this).nextUntil('a', 'p').last().after(link);
    });

    //on click, smooth scrolling back to top
    $('a[href*=#]').bind('click', function (e) {
        e.preventDefault();

        var target = $(this).attr("href");
        var elementTop = $(target).offset().top;
        console.log(elementTop);

        /*
$('html, body').stop().animate({ scrollTop: $(target).offset().top }, 1000, function() {
location.hash = target;
});
*/
    });
}

我在IE7中收到以下错误...

SCRIPT5022: Syntax error, unrecognized expression: http://.../index2.html#mapSVG 
jquery-1.8.3.min.js, line 2 character 59313

错误发生在我单击元素“之后”,我不知道为什么它开始...

感谢您的任何意见

4

1 回答 1

3

该错误是 jQuery 抱怨选择器错误。我的猜测是,在您的<a>标签中,您有http://example.com/index2.html#mapSVG,而不仅仅是#mapSVG.

因此,当您这样做时$(target),您将传递整个 URL,这会破坏 jQuery。

要解决此问题,请var target = $(this).prop("hash");改用。

于 2013-04-26T16:59:30.643 回答