Ajax jquery 성공 범위
아약스에게 전화를 걸어왔습니다doop.php
.
function doop(){
var old = $(this).siblings('.old').html();
var new = $(this).siblings('.new').val();
$.ajax({
url: 'doop.php',
type: 'POST',
data: 'before=' + old + '&after=' + new,
success: function(resp) {
if(resp == 1) {
$(this).siblings('.old').html(new);
}
}
});
return false;
}
내 문제는.$(this).siblings('.old').html(new);
라인이 원래 해야 할 일을 하지 않고 있습니다.
고마워요..도움이 되는 모든 의견/answers들이 투표에 부쳐집니다.
업데이트: 문제의 절반이 범위였던 것 같습니다(그것을 명확히 하는데 도움이 된 답변 감사합니다). 하지만 나머지 절반은 동기식으로 ajax를 사용하려고 합니다.새 게시물을 만들었습니다.
http://api.jquery.com/jQuery.ajax/ 에서와 같은 컨텍스트 설정을 사용해야 합니다.
function doop(){
var old = $(this).siblings('.old').html();
var newValue = $(this).siblings('.new').val();
$.ajax({
url: 'doop.php',
type: 'POST',
context: this,
data: 'before=' + old + '&after=' + newValue,
success: function(resp) {
if(resp == 1) {
$(this).siblings('.old').html(newValue);
}
}
});
return false;
}
"이것"은 성공 범위로 옮겨지며 예상대로 작동합니다.
일단은new
는 유보어입니다.해당 변수의 이름을 변경해야 합니다.
질문에 대답하려면 예, 저장해야 합니다.this
성공 콜백 외부의 변수에서 성공 핸들러 코드 내부에 참조합니다.
var that = this;
$.ajax({
// ...
success: function(resp) {
if(resp == 1) {
$(that).siblings('.old').html($new);
}
}
})
이것을 클로저(closure)라고 합니다.
this
실행 함수가 적용된 개체에 바인딩됩니다.일부 AJAX 응답 개체일 수도 있고 전역 개체일 수도 있습니다.window
, 또는 다른 것(의 구현에 관한 depending)$.ajax
.
$.ajax call을 입력하기 전에 $(이것을) 변수에 캡처한 다음 $.ajax call에 매개 변수로 전달해야 합니까?아니면 익명 성공 기능으로 전달해야 합니까?문제가 해결된다면 $.ajax에게 어디로 전달해야 합니까?
고객의 가치를 파악할 수 있는 방법이 필요합니다.this
정의하기 전에success
기능.폐쇄를 만드는 것이 이를 위한 방법입니다.별도의 변수를 정의해야 합니다(예:self
):
function doop() {
var old = $(this).siblings('.old').html();
var new = $(this).siblings('.new').val();
var self = this;
$.ajax({
url: 'doop.php',
type: 'POST',
data: 'before=' + old + '&after=' + new,
success: function(resp) {
if(resp == 1) {
$(self).siblings('.old').html(new);
}
}
});
return false;
}
그success
함수는 다음의 값을 유지합니다.self
호출될 때, 그리고 당신이 기대하는 대로 행동해야 합니다.
언급URL : https://stackoverflow.com/questions/1570146/ajax-jquery-success-scope
'sourcetip' 카테고리의 다른 글
jQuery Validate로 암호 확인 (0) | 2023.10.05 |
---|---|
Oracle 가장 최근 날짜 레코드 선택 (0) | 2023.10.05 |
젠킨스 파이프라인에서 직접 powershell 명령 실행 (0) | 2023.10.05 |
독특한 콩으로 봄 오토와이어링 : 봄 기대 싱글 매칭콩 단품 발견 2 (0) | 2023.10.05 |
특정 카테고리에서 만든 태그 목록 - word press (0) | 2023.10.05 |