2016-03-26 8 views
1

ich ein Problem in Javascript haben Es ist, wenn Sie den Wert des Feldes löschen oder es ändern sich die jquery Effekte existieren noch Gibt es eine Möglichkeit, alle Änderungen zu löschen, wenn i den Wert von Eingabe löschtklar alle ändern, wenn Löschwert in Eingabe jquery

dieses Beispiel http://enjaz.tech/xlab/progress/ try Typ 6 in dann Typ 2

$(document).ready(function() { 
      $('#submit').click(function(e) { 
      e.preventDefault(); 
      var pram = $('#getId').val() 
      $.ajax({ 
       type: 'POST', 
       url: 'call.php?q='+pram, 
       success: function(data){ 

        for(var i = 0 ; i < data ; i++){ 
         var $steps = $('.amg-step'); 
         if (i > 0) { $($steps[i - 1]).removeClass('--previous'); } 
         $($steps[i]).removeClass('--active').addClass('--complete').addClass('--previous'); 
         if (i < $steps.length) { $($steps[i + 1]).addClass('--active'); } 
        } 
       } 
      }); 
     }); 
}); 

Antwort

1

Sie müssen alle zuvor hinzugefügten Klassen zurück:

var $steps = $('.amg-step').removeClass('--previous').removeClass('--complete').removeClass('--active'); 

Oder eine verkürzte Version des Ajax success Funktion:

var $steps = $('.amg-step').removeClass('--previous --complete --active'); 
for(var i = 0 ; i < data ; i++){ 
    if (i > 0) { 
     $($steps[i - 1]).removeClass('--previous'); 
    } 
    $($steps[i]).removeClass('--active').addClass('--complete').addClass('--previous'); 
    if (i < $steps.length) { $($steps[i + 1]).addClass('--active'); } 
} 
1

Wenn Sie Ihre Eingabe leer ist, müssen Sie alle Klassen löschen und dann wird nur der erste aktiv machen. Verwenden Sie die folgende Code

$('.amg-step').removeClass('--previous --complete --active'); //to clear all 

$('.amg-step:eq(0)').addClass('--active'); // make first one active 

Platzieren Sie diesen Code direkt über Ihre Ajax-Aufruf

+0

, wenn ich diesen Code hinzufügen .. Ich brauche es, wenn ich Wert löschen aus Eingabe –

+0

fügen Sie es nach Ihrer 'var pram = $ ('# getId'). val()' Zeile. –

+0

danke seine Arbeit :) –

0

Sie brandneue Klasse Attribut kann

$('.amg-step').attr('class', 'amg-step'); 
+0

Dies funktioniert möglicherweise nicht richtig, wenn die Elemente zusätzliche Klassen außer den '-' Präfix-Klassen haben - Es wird diese Klassen entfernen und nur 'amg-step' lassen (aber es ist ok für dieses spezielle Szenario) –

Verwandte Themen