2013-09-29 6 views
0

У меня есть набор инструкций в верхней части моей страницы:Сложное Условный

<div class="instructions"> 
     <div id="step1" class="step"><span class="step_active">1</span><span class="step_title_active">General Info</span></div> 
     <div id="step2" class="step"><span class="step_next">2</span><span class="step_title">Select Contact</span></div> 
     <div id="step3" class="step"><span class="step_next">3</span><span class="step_title">Log Details</span></div> 
    </div> 

У меня есть форма, которая показывает себя условия. Первым условием является то, что оба окна выбора должны иметь выбранные опции перед тем, как появится следующая часть.

<script> 
$(document).ajaxSuccess(function() { 
    $("#test").hide(); 
    $("#comType, #comDirection").bind('change', function() { 
     // show the button if they both have a value 
     if ($("#comType").val().length > 1 && $("#comDirection").val().length > 1) { 
      $("#test").fadeIn(); 
     } 
    }); 
}); 
</script> 

Как я могу изменить классы # step1 # step2 так, что, когда вышеуказанные условия выполнены, они выглядят как:

<div id="step1" class="step"><span class="step_complete">1</span><span class="step_title">General Info</span></div> 
    <div id="step2" class="step"><span class="step_active">2</span><span class="step_title_active">Select Contact</span></div> 

Мысли?

+0

Просто пытаюсь переключить классы пролета внутри сНу # step1 и # step2 когда условия JS выполнены. # Step1 будет иметь классы # Step2, примененные к внутренним пролетам, а # step2 будет иметь классы # Step1. В основном это будет палочка, как навигация для формы, подчеркивая тот шаг, на котором вы находитесь. – Mark

+0

В сообщении установлено, что в этом шаге 1 активен. – Mark

+0

скрипка? демо? что-то продолжаться ... –

ответ

2

Вы можете использовать addClass & removeClass property of jQuery.

Попробуйте это:

if ($("#comType").val().length > 1 && $("#comDirection").val().length > 1) { 
    $("#test").fadeIn(); 
    $("#step1").children("span").removeClass("step_active").addClass("step_complete"); 
    $("#step2").children("span").removeClass("step_next").addClass("step_active"); 
    $("#step1").children("span").next("span").removeClass("step_title_active").addClass("step_title"); 
    $("#step2").children("span").next("span").removeClass("step_title").addClass("step_title_active"); 
} 
+1

'$ (" # step1 "). Children (" span ")' можно записать '$ (" # step1> span ")' –

+1

@ThierryJ. $ ("# step1> span") перемещается ко всем дочерним элементам и здесь требуется только для прохождения ровно первого дочернего элемента. –

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