2015-05-04 47 views
0

一个div我如何添加class="demo"添加类,而先前活动类

<div class="single-step active"> 

而此前与id="sf-next"

class="active"

在一个按钮的点击这是demo

这是我迄今使用过的。

$("#sf-next").click(function() { 
    $(".active").addClass("done"); 
}); 

但是当我点击下一步,class="active"移动到第二个div也是如此的class="done"

但是,这不应该是这样的。 Class="done"应该被添加到以前有class="active"的div中。

+2

检查[如何创建一个最小化,完整和可验证的示例](http://stackoverflow.com/help/mcve)并从小提琴中删除额外的东西,以帮助获得良好的答案。 – ekuusela

+0

使用jquery [hasClass()](https://api.jquery.com/hasclass/)函数 –

回答

1

如果它真的下一个按钮,你可以申请新的类,而不是实际的“积极”到上一个活跃

$("#sf-next").click(function() { 
$(".active").prev().addClass("done"); 
}); 

否则,你必须找出活动类变点和执行你的onclick函数在此之前。

+0

你真棒,非常感谢...不知道prev() – user3848698

0

它退出简单的哥们。只要给div一个id,如myDivId。然后创建一个功能类似波纹管:

function myfunction(){document.getElementById("myDivId").setAttribute("class","demo");}

您务必做好接下来的事情就是一个onclick=myfunction()添加按钮。简单那样

0

现在会发生这种情况,因为还有一些其他的JavaScript将活跃的类添加到它。所以你必须做的是两件事之一

1)修改相同的方法,即添加活动类将其添加到相同的元素,而不是去做下一个元素,同时添加done类太。

2)在该方法被调用之前,将类'done'添加到类'active',并且在该方法之后被称为将'active'添加到'done'。


如果您可以添加正在添加活动的方法,我将能够更好地为您提供帮助。

0

我无法调试你的html。 但可能的解决方案是:

1.Either让你想添加类作为您的按钮的父母,然后在div使用

$("#sf-next").click(function() { 
$(this).parent().addClass("done"); 
}); 

2.或者,如果你把两个在按钮和DIV相同的父div,使用此:

$("#sf-next").click(function() { 
    $(this).parent().find('.active').addClass("done"); 
}); 

在这两种情况下,我得到div的当前对象。希望你明白我的观点。快乐的编码。