Javascript I';我在ul中添加了一个li,当它起作用时,它';是什么导致了一个错误
我使用了一个模板,它有一些很好的滚动效果(),但是,我在Javascript I';我在ul中添加了一个li,当它起作用时,它';是什么导致了一个错误,javascript,jquery,Javascript,Jquery,我使用了一个模板,它有一些很好的滚动效果(),但是,我在ul的末尾添加了一个外部链接,它似乎可以工作,但它会导致错误 滚动时出现以下错误: 未捕获错误:语法错误,无法识别的表达式: 我相信下面JavaScipt代码的第一部分就是它的破绽之处,但我不确定如何修复它: function onScroll(event){ var scrollPos = $(document).scrollTop(); $('.navbar-default .navbar-na
ul
的末尾添加了一个外部链接,它似乎可以工作,但它会导致错误
滚动时出现以下错误:
未捕获错误:语法错误,无法识别的表达式:
我相信下面JavaScipt代码的第一部分就是它的破绽之处,但我不确定如何修复它:
function onScroll(event){
var scrollPos = $(document).scrollTop();
$('.navbar-default .navbar-nav>li>a').each(function () {
var currLink = $(this);
var refElement = $(currLink.attr("href"));
if (refElement.position().top <= scrollPos && refElement.position().top + refElement.height() > scrollPos) {
$('.navbar-default .navbar-nav>li>a').removeClass("active");
currLink.addClass("active");
}
else{
currLink.removeClass("active");
}
});
}
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li><a class="menu active" href="#home" title="Home" >Home</a></li>
<li><a class="menu" href="#about">about </a></li>
<li><a class="menu" href="#team" title="Portfolio">Portfolio</a></li>
<li><a class="menu" href="#contact" title="Contact">contact</a></li>
<li><a href="www.google.com" target="_blank" >google</a></li>
</ul>
</div>
函数onScroll(事件){
var scrollPos=$(document.scrollTop();
$('.navbar default.navbar nav>li>a')。每个(函数(){
var currLink=$(此);
var refElement=$(currLink.attr(“href”);
if(refElement.position().top scrollPos){
$('.navbar default.navbar nav>li>a').removeClass(“活动”);
currLink.addClass(“活动”);
}
否则{
currLink.removeClass(“活动”);
}
});
}
我假设您使用的任何模板都希望您的菜单具有特定的结构,例如应用于菜单内锚定的类
属性。您添加的锚不具有此属性
尝试更改此选项:
<li><a href="www.google.com" target="_blank" >google</a></li>
为此:
<li><a class="menu" href="www.google.com" target="_blank">google</a></li>
我假设您使用的任何模板都希望您的菜单具有特定的结构,例如应用于菜单内锚定的类
属性。您添加的锚不具有此属性
尝试更改此选项:
<li><a href="www.google.com" target="_blank" >google</a></li>
为此:
<li><a class="menu" href="www.google.com" target="_blank">google</a></li>
问题是您的代码试图使用href
作为选择器来选择元素#home
是一个有效的jQuery ID选择器,但www.google.com
不是(顺便说一句,您可能需要https://www.google.com
)。尝试筛选,以便只使用以#
开头的代码
function onScroll(event){
var scrollPos = $(document).scrollTop();
$('.navbar-default .navbar-nav>li>a').each(function () {
var currLink = $(this);
// Only apply to those tags that start with '#'.
var href = currLink.attr("href");
if (href.indexOf('#') === 0) {
var refElement = $(href);
if (refElement.position().top <= scrollPos && refElement.position().top + refElement.height() > scrollPos) {
$('.navbar-default .navbar-nav>li>a').removeClass("active");
currLink.addClass("active");
}
else{
currLink.removeClass("active");
}
}
});
}
函数onScroll(事件){
var scrollPos=$(document.scrollTop();
$('.navbar default.navbar nav>li>a')。每个(函数(){
var currLink=$(此);
//仅适用于以“#”开头的标记。
var href=currLink.attr(“href”);
如果(href.indexOf('#')==0){
var refElement=$(href);
if(refElement.position().top scrollPos){
$('.navbar default.navbar nav>li>a').removeClass(“活动”);
currLink.addClass(“活动”);
}
否则{
currLink.removeClass(“活动”);
}
}
});
}
问题是您的代码试图使用href
作为选择器来选择元素#home
是一个有效的jQuery ID选择器,但www.google.com
不是(顺便说一句,您可能需要https://www.google.com
)。尝试筛选,以便只使用以#
开头的代码
function onScroll(event){
var scrollPos = $(document).scrollTop();
$('.navbar-default .navbar-nav>li>a').each(function () {
var currLink = $(this);
// Only apply to those tags that start with '#'.
var href = currLink.attr("href");
if (href.indexOf('#') === 0) {
var refElement = $(href);
if (refElement.position().top <= scrollPos && refElement.position().top + refElement.height() > scrollPos) {
$('.navbar-default .navbar-nav>li>a').removeClass("active");
currLink.addClass("active");
}
else{
currLink.removeClass("active");
}
}
});
}
函数onScroll(事件){
var scrollPos=$(document.scrollTop();
$('.navbar default.navbar nav>li>a')。每个(函数(){
var currLink=$(此);
//仅适用于以“#”开头的标记。
var href=currLink.attr(“href”);
如果(href.indexOf('#')==0){
var refElement=$(href);
if(refElement.position().top scrollPos){
$('.navbar default.navbar nav>li>a').removeClass(“活动”);
currLink.addClass(“活动”);
}
否则{
currLink.removeClass(“活动”);
}
}
});
}
这肯定不能解决JavaScript问题。除非我能识别该域,否则我不会加载有问题的外部网站。就您而言,它可能会也可能不会解决javascript问题,这取决于解析的内容-外部库与浏览器。我也没有访问该链接,但Uncaught Error:Syntax Error,无法识别的表达式
是一个jQuery异常,这意味着它被赋予了无效的选择器。非常确定这不会解决JavaScript问题。除非我识别域,否则我不会加载有问题的外部网站。就您而言,它可能会也可能不会解决javascript问题,这取决于解析的内容-外部库与浏览器。我也没有访问该链接,但Uncaught Error:Syntax Error,无法识别的表达式
是一个jQuery异常,意味着它被赋予了无效的选择器。您的链接指向一个不包含任何代码的雪佛兰网站。这里没有足够的内容来重现问题,因此您将得到的所有答案都只是猜测。您的链接指向一个不包含任何代码的雪佛兰网站。这里没有足够的内容来重现这个问题,所以你会得到的所有答案都只是猜测。我基本上写了同样的东西,但这个答案更好,所以我删除了我的,并投了更高的票。谢谢大家。我将选择器更新为:$('.navbar default.navbar nav>li>a[id]')我基本上写了相同的东西,但这个答案更好,所以我删除了我的并进行了投票。谢谢大家。我将选择器更新为:$('.navbar default.navbar nav>li>a[id]')