반응형
ajax success 콜백 함수 내의 $(this)에 액세스하는 방법
jquery ajax success 함수의 $(this)에 액세스할 수 없는 것 같습니다.아래 코드를 참조하십시오.
$.ajax({
type: 'post',
url: '<?php echo site_url('user/accept_deny_friendship_request')?>',
data: 'action='+$action+'&user_id='+$user_id,
success: function(response){
//cannot access $(this) here $(this).parent().remove();
}
});
해야 할 일$(this)
be? 해당 함수 외부에 참조가 있는 경우 변수에 저장할 수 있습니다.
$('#someLink').click(function() {
var $t = $(this);
$.ajax( ... , function() {
$t.parent().remove();
});
}
콘텍스트 옵션을 확인해 주세요.내게 딱 맞는 것 같아요.
$.ajax({
context: this,
type: 'post',
url: '<?php echo site_url('user/accept_deny_friendship_request')?>',
data: 'action='+$action+'&user_id='+$user_id,
success: function(response){
//can access this now!
}
});
네가 원한다면this
되려고this
Ajax 콜의 컨텍스트에서는,.bind()
다음과 같습니다.
$.ajax({
url: 'some_url'
success: function(data) {
// do something 'this'
}.bind(this)
})
그것은 의 가치를 구속하다this
에 대한 성공 콜백의 내부this
밖으로.
의 범위를 변경하려면 , 를 호출해 주세요.this
기능 내부:
$.ajax({
success: $.proxy(function(response) { $(this).parent().bla(); }, $(this));
});
안보여요.$(this)
참조하기 쉬운 방법은 요소에 클래스 또는 ID를 지정하고 jquery에서 참조하는 것입니다.
대신:
$(this).parent().remove();
다음과 같은 작업을 할 수 있습니다.
$('#element_id').parent().remove();
주의: 여기서는 하나의 요소/반복에 대처하고 있다고 가정합니다.
이제 ES6 화살표 기능을 사용하여 간단하게 구현할 수 있습니다.다음과 같이 어나니머스 함수를 화살표 함수식으로 변환할 수 있습니다.
$.ajax({
..,
success: (response) => {
// access this outside of this function scope by using `this`
}
});
오래된 브라우저를 지원하려면 babel과 같은 트랜스필러를 사용하십시오.
언급URL : https://stackoverflow.com/questions/2643798/how-to-access-the-this-inside-ajax-success-callback-function
반응형
'code' 카테고리의 다른 글
Vite 프로젝트 React TS에서 절대 경로가 작동하지 않습니다. (0) | 2023.04.03 |
---|---|
React Native에서 상위 화면 너비의 80%를 표시합니다. (0) | 2023.04.03 |
Jackson Scala 모듈의 작은 예 (0) | 2023.03.29 |
@ExceptionHandler(Spring REST)에서 @RequestBody를 얻는 방법 (0) | 2023.03.29 |
jQuery-UI - "정의되지 않은 속성 '단계'를 읽을 수 없습니다" (0) | 2023.03.29 |