문제

테이블 셀의 배경색을 업데이트하기 위해 jQuery ajax 콜백 함수를 얻으려고 노력하고 있지만 작동 할 수는 없습니다.

다음 코드가 있습니다 (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 자리 16 진 코드)를 다시 받고 있음을 확인하기 위해 경고를 추가했지만 테이블 셀의 배경은 완고하게 변경을 거부합니다.

모든 테이블 셀에는 클래스 .TariffDate가 있지만 개별 ID도 있습니다.

시험으로, 나는 그 수업에 대한 호버 함수를 만들려고 노력했다.

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

위의 내용은 잘 작동하므로 콜백 기능이 작동하지 않는 이유에 대해 정말 혼란스러워합니다. 어떤 아이디어?

도움이 되었습니까?

해결책

Ajax 완료된 핸들러에서 인스턴스 this 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);
      }
   );
});

다른 팁

Ajax 콜백 함수에 "이"변수가 무엇인지 확인하십시오. 나는 그것이 .tariffdate를 언급하지 않는다고 생각합니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top