2015-05-04 50 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的當前對象。希望你明白我的觀點。快樂的編碼。