2016-09-19 3 views
1

Ich versuche, diese Span-Schaltflächen Farben zuweisen, wenn ich die Klasse innerhalb der Spannungsklasse, es funktioniert, aber manchmal ändert es nicht die Farbe, und ich will auch in der Lage sein habe nur einen Button als farbig gesetzt. Und ich muss auch die Werte innerhalb des Stils speichern, weil ich möchte, dass sie beim Laden der Seite eingefärbt werden.Zuweisen von Stil attr durch jquery

while($stmt->fetch()): ?> 
<div class="statusicons"> 
    <a href="#" class="btn btn-xs btn-default"><span data-color="0" class=" glyphicon glyphicon-ok" style=""></span></a> 
    <a href="#" class="btn btn-xs btn-default"><span data-color="1" class=" glyphicon glyphicon-road" style=""></span></a> 
    <a href="#" class="btn btn-xs btn-default"><span data-color="2" class=" glyphicon glyphicon-remove-sign" style=""></span></a> 
    </div> 
<?php endwhile; 
$stmt->close(); ?> 

$('.statusicons').on('click', function() { 
    var color = $(this).data('color'); 
    var array = ['green', 'orange', 'red']; 
    $(this).attr('style', 'color :' + array[color]); 
}); 

Antwort

0

Verwendung css(), Ihre Click-Ereignis Klicken auf den Link ändern und diese Verbindung der Spanne finden und Farbe es

$('.statusicons a').on('click', function(e) { 
    e.preventDefault(); 
    var color = $(this).find('span').data('color'); 
    var array = ['green', 'orange', 'red']; 
    $(this).find('span').css('color',array[color]); 

}); 

Sie nicht den Zustand der Farbe im Stil-Attribut speichern, um den Zustand wird bei Aktualisierung der Seite verloren, vergessen Sie nicht Ihre js in Dokument bereit Aussage zu wickeln und Ihre Veranstaltung delegieren, wenn die Statussymbole dynamisch

+0

@Bartek Gladys Es ist nach wie vor gleiche tun, musste ich Klasse hinzufügen zu überspannen, aber ich kann Farbe aller 3 Tasten ändern, was ich will nicht, möchte ich in der Lage sein, gerade zu setzen ein Knopf, Und auch manchmal funktioniert es nicht, wenn ich auf den Knopf klicke passiert nichts. – rtom

+0

Das funktioniert irgendwie, aber trotzdem, ist es irgendwie möglich, den Staat zu retten? und ich möchte auch nur eine der drei Tasten ändern können. Zum Beispiel, wenn ich eine Taste als rot, dann die anderen zwei Tasten setzen ihre Farbe – rtom

+0

ja können Sie speichern, ja können Sie zurücksetzen – madalinivascu

0

css() versuchen

hinzugefügt werden
$(this).css('color', array[color]); 
+0

Bitte bearbeiten Sie mit weiteren Informationen. Code-only und "try this" Antworten werden abgeraten, da sie keine durchsuchbaren Inhalte enthalten und nicht erklären, warum jemand "das versuchen sollte". – abarisone

1

Möglicherweise ist dies wegen data-color Rückgabestring.

Versuchen Sie, den Index in eine ganze Zahl zu konvertieren.

$('.statusicons a').on('click', function() { 
    var color = parseInt($(this).data('color')); // Convert data-color to integer to check index 
    var array = ['green', 'orange', 'red']; 
    $(this).attr('style', 'color :' + array[color]); 
}); 
+0

Das Array ist kein Problem, ich bin in der Lage, die Farbe einzustellen, aber manchmal, nachdem ich auf den Knopf geklickt habe, passiert nichts und ich muss auch in der Lage sein, nur einer der drei Tasten Farbe zuzuweisen. – rtom