Jquery 仅当.active类不是第一个子类时显示按钮
我正在使用jQuery创建一个多步骤表单,并且我试图只在活动类不在第一个子类上时显示Jquery 仅当.active类不是第一个子类时显示按钮,jquery,css,Jquery,Css,我正在使用jQuery创建一个多步骤表单,并且我试图只在活动类不在第一个子类上时显示#prev按钮。默认情况下,我将display:none添加到#prev以在加载时隐藏它,但当.active类添加到其他部分时,我很难显示它 当在if语句中使用is(“:not(:first child))将其作为目标时,它会工作,但仅在将活动类添加到步骤3时才会显示 有人能告诉我如何确保按钮仅在每个部分都有class.active时可见,除了#step1 if(active.is(":not(:first-ch
#prev
按钮。默认情况下,我将display:none
添加到#prev
以在加载时隐藏它,但当.active
类添加到其他部分时,我很难显示它
当在if语句中使用is(“:not(:first child))
将其作为目标时,它会工作,但仅在将活动类添加到步骤3
时才会显示
有人能告诉我如何确保按钮仅在每个部分都有class.active
时可见,除了#step1
if(active.is(":not(:first-child)")) {
$('#prev').show();
}
HTML
Jquery
$('.multi-form-actions button').on('click', function() {
var el = $(this).attr('id');
var active = $('.multi-step-section.active');
if(active.is(":not(:first-child)")) {
$('#prev').show();
}
active.removeClass('active');
if(el == 'prev') {
active.prev('.multi-step-section').addClass('active');
}
else if(el = 'next') {
active.next('.multi-step-section').addClass('active');
}
});
为了使这项工作顺利进行,您需要做以下几件事:
活动变量集合中保存的元素
$('.multi-form actions button')。在('click',function()上{
var el=$(this.attr('id');
var active=$('.multi-step section.active');
//还要从同级中删除活动类
active.removeClass('active');
如果(el=='prev'| | el=='next'){//如果您有其他按钮
active=active[el]('.multi-step section')。addClass('active');;
}
//根据情况显示或隐藏上一个按钮
$('prev')[active.is(“:not(:first child)”)?'show':'hide']();
});
#prev,
.多步骤部分{
显示:无;
}
.多步骤剖面图.激活{
显示:块;
}
步骤1
步骤二
步骤三
步骤四
步骤5
步骤6
返回
下一个
要使这项工作正常进行,您需要做几件事:
活动变量集合中保存的元素
$('.multi-form actions button')。在('click',function()上{
var el=$(this.attr('id');
var active=$('.multi-step section.active');
//还要从同级中删除活动类
active.removeClass('active');
如果(el=='prev'| | el=='next'){//如果您有其他按钮
active=active[el]('.multi-step section')。addClass('active');;
}
//根据情况显示或隐藏上一个按钮
$('prev')[active.is(“:not(:first child)”)?'show':'hide']();
});
#prev,
.多步骤部分{
显示:无;
}
.多步骤剖面图.激活{
显示:块;
}
步骤1
步骤二
步骤三
步骤四
步骤5
步骤6
返回
下一个
尝试类似的方法,这也将确保有下一个活动步骤要激活
$('.multi-form actions button')。在('click',function()上{
var el=$(this.attr('id');
var active=$('.multi-step section.active');
非接触性;
如果(el=='prev'){
nextActive=active.prev('.multi-step section');
}
else if(el=‘next’){
nextActive=active.next('.multi-step section');
}
如果(nextActive.length>0){
active.removeClass('active');
if(nextActive.is(“:first child”)){
$('#prev').hide();
}
否则{
$('#prev').show();
}
nextActive.addClass('active');
}
});
#prev{
显示:无;
}
返回
下一个
尝试类似的方法,这也将确保有下一个活动步骤要激活
$('.multi-form actions button')。在('click',function()上{
var el=$(this.attr('id');
var active=$('.multi-step section.active');
非接触性;
如果(el=='prev'){
nextActive=active.prev('.multi-step section');
}
else if(el=‘next’){
nextActive=active.next('.multi-step section');
}
如果(nextActive.length>0){
active.removeClass('active');
if(nextActive.is(“:first child”)){
$('#prev').hide();
}
否则{
$('#prev').show();
}
nextActive.addClass('active');
}
});
#prev{
显示:无;
}
返回
下一个
因此,对您的逻辑进行一些修复
=
打字错误激活设置为新激活
$('.multi-form actions button')。在('click',function()上{
var el=$(this.attr('id');
var active=$('.multi-step section.active');
active.re
#prev {
display: none;
}
$('.multi-form-actions button').on('click', function() {
var el = $(this).attr('id');
var active = $('.multi-step-section.active');
if(active.is(":not(:first-child)")) {
$('#prev').show();
}
active.removeClass('active');
if(el == 'prev') {
active.prev('.multi-step-section').addClass('active');
}
else if(el = 'next') {
active.next('.multi-step-section').addClass('active');
}
});