I’m trying to get an jquery ajax callback function to update the background colour of a table cell, but I can’t get it to work.
I have the following code (which produces no errors in Firebug):
$(".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);
});
I’ve added the alert just to confirm I’m getting the expected data back (a 6 digit hexadecimal code), and I am – but the background of my table cell stubbornly refuses to change.
All the table cells have the class .tariffdate but also have individual ID.
As a test, I tried creating a hover function for that class:
$(".tariffdate").hover(function () {
$(this).css('background-color','#ff0000');
});
The above works fine – so I’m really confused as to why my callback function is not functioning. Any ideas?
In the AJAX completed handler the instance of
thisis changed to the ajax object. You’ll need to save the instance ofthisto an object and use that object. For example: