2

我的 jQuery 代码(如下)有问题,我不明白为什么?

我正在尝试为我的网站提供一个scrollTop动画,它可以正常工作,但是当我想使用ul li ul li a星座时,即使 jQuery 触发它也会卡住,并且出现如下错误:

Uncaught TypeError: Cannot read property 'top' of undefined

我的代码和完全相同的情况再次出现:当我点击例如href="#5.1"

更新代码:

$('ul li a').click(function(event) {
    var location = $(this).attr('href');
    $('html, body').animate({
        scrollTop : $(location).offset().top -10
    }, 800, function () {
       var location 2 = location.replace( "\\" ,"");
    window.location.hash = location2;
});
    return false;
});

jsFiddle 示例

4

1 回答 1

3

您的解决方案很简单!你必须 escape .,就像这样:

<a href="#5\.1">Punkt 10: Header und Footer ohne ID ansprechen</a>

在线工作示例

要使用任何元字符(例如 !"#$%&'()*+,./:;<=>?@[]^`{|}~ )作为名称的文字部分,它必须逃脱。

选择器 | jQuery API 文档

编辑1:

如果您试图避免\在实际 URL 中包含它,只需尝试通过将简单的正则表达式应用于您的位置变量来删除它:

var location = location.replace(/\\/g,"");
于 2013-11-03T14:25:08.973 回答