jQuery- ajax 콜백 함수에서 CSS Propery를 설정할 수 없습니다.
-
22-08-2019 - |
문제
테이블 셀의 배경색을 업데이트하기 위해 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를 언급하지 않는다고 생각합니다
제휴하지 않습니다 StackOverflow