Frage

Ich versuche, eine Jquery Ajax Callback-Funktion erhalten die Hintergrundfarbe einer Tabellenzelle zu aktualisieren, aber ich kann es nicht arbeiten.

Ich habe den folgenden Code (die keine Fehler in Firebug erzeugt):

$(".tariffdate").click(function () {
   var property_id = $('#property_id').attr("value");
   var tariff_id = $('#tariff_id').attr("value");
   var tariff_date = $(this).attr("id");
   $.post("/admin/properties/my_properties/booking/edit/*", { property_id: property_id, tariff_id: tariff_id, tariff_date:  tariff_date },
function(data){
   var bgcol = '#' + data;
   $(this).css('background-color',bgcol);
   alert("Color Me: " + bgcol);
});

Ich habe den Alarm nur hinzugefügt, um zu bestätigen ich die erwarteten Daten zurück (ein 6-stellige Hexadezimal-Code) bekommen, und ich bin - aber der Hintergrund meiner Tabellenzelle hartnäckig weigert zu ändern.

Alle Tabellenzellen haben die Klasse .tariffdate sondern auch individuelle ID.

Als Test habe ich versucht, eine Hover-Funktion für diese Klasse zu erstellen:

$(".tariffdate").hover(function () {
   $(this).css('background-color','#ff0000');
});

Die obige funktioniert gut - also bin ich wirklich verwirrt, warum meine Callback-Funktion funktioniert nicht. Irgendwelche Ideen?

War es hilfreich?

Lösung

In der AJAX abgeschlossen Handler die Instanz von this auf das Ajax-Objekt geändert. Sie müssen die Instanz von this auf ein Objekt speichern und das Objekt verwenden. Zum Beispiel:

$(".tariffdate").click(function () {
   var property_id = $('#property_id').attr("value");
   var tariff_id = $('#tariff_id').attr("value");
   var tariff_date = $(this).attr("id");
   var tariff = $(this);
   $.post("/admin/properties/my_properties/booking/edit/*", 
      { property_id: property_id, tariff_id: tariff_id, tariff_date:  tariff_date },
      function(data) {
         var bgcol = '#' + data;
         tariff.css('background-color',bgcol);
         alert("Color Me: " + bgcol);
      }
   );
});

Andere Tipps

Überprüfen Sie, was die "this" Variable in AJAX Callback-Funktion ist. Ich vermute, dass es nicht .tariffdate Bezug

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top