jquery $.get이나 $.post의 callback 함수 안에서 this

,

아래 같은 코드였다.

$('button.delete').click(function(){
  $.get('url',{a:1,b:2}, function(data){
    $(this).parent().remove(); //문제는 바로 여기
  });
});

내가 의도했던 것은 버튼의 부모 객체를 날리는 것이었다. 삭제 버튼이었으므로 말이다. 그런데 안 날아가는 것 ㅠ.ㅠ

한참 헤매다가 파이어버그의 js 디버그 기능을 이용해서 $(this).parent().remove(); 코드가 있는 줄에서 스크립트를 멈추고 객체들을 확인했다.

대충격. this는 ajax에서 사용하는 객체였다. xhr이 그 안에 있는 것으로 보아 xhr은 아닌 것 같고. 아래 그림을 보면 this의 정체를 확인할 수 있다.

그래서 해결한 방법은, $.get 이 나오기 전에 $(this).parent()를 var widget에 집어넣고 활용했다.

변수를 적게 사용하는 게 능사는 아닌 듯.

카테고리

,

17년차 풀스택 웹 개발자 안형우입니다

웹 개발에서도 중요한 것은 개념입니다.
이 블로그에는 제가 개발하며 익힌 개념들을 정리합니다.

워드프레스를 오래 다뤄 왔고 강의도 두 편 찍었습니다.
– 인프런 “워드프레스 제대로 개발하기 어드민 편, 클라이언트 편
– 클래스101 “누구나 할 수 있는 워드프레스 홈페이지 만들기 – 기획부터 출시까지 한 방에 OK

유튜브 채널에 워드프레스 관련 팁들을 올리고 있습니다.

👉 소개 더 보기

대표글

“jquery $.get이나 $.post의 callback 함수 안에서 this”에 대한 2개의 응답

  1. 함수가 $.get( 의 인자값이기 때문에인 것 같군요.

    1. 네. 그런 것 같아요. ^^ this가 어렵다고 한느데 그런 것 같아요. ㅋ

아즈키 에 응답 남기기응답 취소