2015-05-04 3 views
0

Как добавить class="demo" кДобавить класс в DIV, который ранее имел активный класс

<div class="single-step active"> 

которые ранее имели class="active"

На щелчку следующей кнопке с id="sf-next"

Это demo

Это то, что я использовал до сих пор.

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

Но когда я щелкаю дальше, class="active" переходит на второй DIV и таким образом делает class="done".

Но этого не должно быть. Class="done" следует добавить в div, который ранее имел class="active".

+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) Измените тот же метод, который добавляет класс active, чтобы добавить его в тот же элемент, вместо того, чтобы делать следующий элемент и в то же время добавить класс done слишком.

2) Перед тем, как этот метод получает вызов, добавьте класс 'done' в класс 'active', и после этого метод называется add 'active' to '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. Надеюсь, ты понял. Счастливое кодирование.

Смежные вопросы