2010-12-31 2 views
0

Ich versuche, das geänderte Feld auf eine AJAX-Petition mit der Änderung des Hintergrunds von <tr /> geändert, aber ich kann es nicht funktionieren.jQuery speichern tatsächlichen CSS-Hintergrundfarbe, wenden Sie eine neue und dann das Original wiederherstellen

Mein Code enthält eine AJAX-Petition aber ich umgehen dieses Recht das Problem mit diesem ist:

var $this = $(this); 
if(confirm("Delete?")) 
{ 
    // My AJAX petition returns TRUE or FALSE, if TRUE: 

    // Store the ORIGINAL color 
    var ORIGINAL = $this.closest("tr.entry").css('backgroundColor'); 

    // The alert works fine 
    alert(ORIGINAL); 

    // Change the color with the desired and then change with the original after a delay. 
    // If i dont use the delay() and the second css() works fine. 

    $this.closest("tr.entry").css('backgroundColor','#ace997').delay(500).css('backgroundColor', ORIGINAL); 
} 

Danke im Voraus!

+0

Sind Sie auf jQuery 1.4? – BoltClock

+0

@BoltClock: Ja, ich bin. – ipalaus

+0

Die erste Zeile sollte lesen var $ this = $ (this); – bozdoz

Antwort

1

Die jQuery .delay() Methode ist es, die Effekte Warteschlange für die Verwaltung, unter Verwendung von jQuery Wirkungen. Da Sie diese nicht verwenden, sollten Sie verwenden setTimeout:

$this.closest("tr.entry").css('backgroundColor','#ace997'); 

window.setTimeout(function(e) { 
    return function() { 
     e.css('backgroundColor', ORIGINAL); 
    } 
}($this.closest('tr.entry')), 500); 
0

Ihnen fehlt eine abschließende Parenthasis in Ihrer confirm() if-Anweisung.

if(confirm("Delete?")

sollte

if(confirm("Delete?"))

Verwandte Themen