代码之家  ›  专栏  ›  技术社区  ›  BrynJ

jQuery-无法在ajax回调函数中设置css属性

  •  0
  • BrynJ  · 技术社区  · 17 年前

    我有以下代码(在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);
    });
    

    我添加此警报只是为了确认我正在返回预期的数据(一个6位十六进制代码),确实如此,但我的表单元格的背景顽固地拒绝更改。

    所有表格单元格都有class.tariffdate,但也有单独的ID。

    作为测试,我尝试为该类创建一个悬停函数:

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

    2 回复  |  直到 17 年前
        1
  •  2
  •   bendewey    17 年前

    在AJAX完成的处理程序中 this 这 指向一个对象并使用该对象。例如:

    $(".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);
          }
       );
    });
    
        2
  •  1
  •   ajma    17 年前

    检查ajax回调函数中的“this”变量。我怀疑这不是指tariffdate