我有一些片段加载点击。我还将页面滚动到这些链接的顶部,如css-tricks上所示。我收到以下错误:未捕获错误:语法错误,无法识别的表达式:#!Fragment_Name
我的js
$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
var target = $(this.hash);//this is where the error is
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 1000);
return false;
}
}
});
});
HTML
<li><a href="#!Fragment_Name">Link Text</a></li>
我试过var target = $($(this.hash));没有快乐
一切仍然有效,我只是想知道如何修复此问题并从控制台中删除错误。
答案 0 :(得分:1)
您只需使用.replace
即可转义!
:
$(this.hash.replace( /([!])/g, "\\$1" ))
答案 1 :(得分:-1)
这是因为JQuery选择器中有一个特殊字符。除掉 !从你的href,它会没事的。