Javascript jQuery';s addClass可以工作,但浏览器不能';不要申请新的课程
所以,在我的页面上,我有一个导航栏,可以帮助我在页面上移动。单击后,我从以前的Javascript jQuery';s addClass可以工作,但浏览器不能';不要申请新的课程,javascript,jquery,html,css,twitter-bootstrap,Javascript,Jquery,Html,Css,Twitter Bootstrap,所以,在我的页面上,我有一个导航栏,可以帮助我在页面上移动。单击后,我从以前的中删除.active类并将其交给新类。在控制台中,一切看起来都很好,但在页面上有一个问题。我在active中看不到.active类属性,并且在单击之前滚动它的工作方式与以前不同。这是我的页面和代码: (很难描述到底发生了什么:)) SCSS: 编辑: 我更改了代码,将类添加到父元素,如下所示: $(this).parent().addClass('active'); Bootstrap将活动类添加到a的父级,我也尝试
$(this).parent().addClass('active');
Bootstrap将活动类添加到a的父级
$("#navbar > ul > li > a").click(function(e) {
$('.active').removeClass('active');
$(this).addClass('active'); //here you add class active to the clicked 'a' element
因此,a
元素在单击时具有类.active
。但是,正如我从评论中了解到的,您希望li
类处于活动状态,因此请使用:
$(this).parents('li').addClass('active')
而且在CSS中,您应该更具体,因为您可能已经为li.active a
设置了一些样式,例如写:
#navbar ul.nav li.active > a { /*styles*/ }
你在SCSS里写错了,因为在JQ里
$("#navbar > ul > li > a").click(function(e) {
$('.active').removeClass('active');
$(this).addClass('active'); //here you add class active to the clicked 'a' element
因此,a
元素在单击时具有类.active
。但是,正如我从评论中了解到的,您希望li
类处于活动状态,因此请使用:
$(this).parents('li').addClass('active')
而且在CSS中,您应该更具体,因为您可能已经为li.active a
设置了一些样式,例如写:
#navbar ul.nav li.active > a { /*styles*/ }
您需要以父div为目标,尝试将$(“#navbar>ul>li>a”)
更改为$(“#navbar>ul>li”)
})) 您需要以父div为目标,尝试将$(“#navbar>ul>li>a”)
更改为$(“#navbar>ul>li”)
})) 我查看您的网站,您的类没有针对性,更改它们在CSS中的执行方式,查看我为您附加的图像,类。活动未应用]
正如您看到的,灰色被覆盖,但您的类在javascript中得到应用。我查看您的网站,您的类没有目标,更改它们在CSS中的执行方式,查看我为您附加的图像,类。活动未应用]
正如您看到的,灰色被覆盖,但是您的类被应用在javascript中。您可以将脚本编写为$(this).parent().addClass('active')代码>您可以将脚本编写为$(this.parent().addClass('active')
该SCS将转换为。激活一个
选择器,该选择器以类为的元素中的a元素为目标。激活的
但实际上是将类添加到a元素中。。。然后什么也不会发生。a中没有元素。active to target该SCS将转换为。active a
选择器以类的a元素中的a元素为目标。active
但实际上您正在将类添加到a元素中。。。然后什么也不会发生。active到targetI中没有元素。我需要将.active类添加到父元素-(就像bootstrap一样)。我尝试了:$(this.parent().addClass('active'),但它不起作用。知道为什么吗?添加$(this)。parents('li')。addClass('active')你能用HTML编辑你的原始问题吗?这可能是html结构的问题。再看看控制台,是否有错误?控制台中没有错误,代码在这里:这意味着jQ代码正在工作。问题在于SCS。您应该在SCSS中尝试更具体的路径。例如:#navbar ul.nav li.active>a{/*styles*/}
我需要将.active类添加到父元素- (就像引导一样)。我尝试了:$(this.parent().addClass('active'),但它不起作用。知道为什么吗?添加$(this)。parents('li')。addClass('active')你能用HTML编辑你的原始问题吗?这可能是html结构的问题。再看看控制台,是否有错误?控制台中没有错误,代码在这里:这意味着jQ代码正在工作。问题在于SCS。您应该在SCSS中尝试更具体的路径。例如:#navbar ul.nav li.active>a{/*styles*/}