[JQUERY] Ajax jquery 성공 범위
JQUERYAjax jquery 성공 범위
해결법
-
1.첫 번째 새로는 예약 된 단어입니다. 해당 변수의 이름을 바꿔야합니다.
첫 번째 새로는 예약 된 단어입니다. 해당 변수의 이름을 바꿔야합니다.
귀하의 질문에 답변하려면 예, 성공 콜백 외부의 변수에 저장하고 성공 처리기 코드 내에서 참조해야합니다.
var that = this; $.ajax({ // ... success: function(resp) { if(resp == 1) { $(that).siblings('.old').html($new); } } })
이것은 폐쇄라고합니다.
-
2.컨텍스트 설정을 http://api.jquery.com/jquery.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; }
"이"는 성공 범위로 이전되고 예상대로 행동합니다.
-
3.이것은 실행 기능이 적용된 객체에 바인딩됩니다. 이는 일부 Ajax 응답 객체 또는 전역 개체 (창) 또는 다른 것 ($ .AJAX의 구현에 따라 다름) 일 수 있습니다.
이것은 실행 기능이 적용된 객체에 바인딩됩니다. 이는 일부 Ajax 응답 객체 또는 전역 개체 (창) 또는 다른 것 ($ .AJAX의 구현에 따라 다름) 일 수 있습니다.
실제로 성공 함수를 정의하기 전에이 값을 캡처 할 수있는 방법이 필요합니다. 폐쇄를 만드는 것은 이것을하는 방법입니다. 별도의 변수 (예 : 자체)를 정의해야합니다.
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; }
성공 함수는 호출 될 때 자체의 가치를 유지하고 예상대로 작동해야합니다.
from https://stackoverflow.com/questions/1570146/ajax-jquery-success-scope by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 제출 버튼을 누른 후 양식 값 변경 (0) | 2020.11.03 |
---|---|
[JQUERY] jQuery Ajax 콜백이 호출 기능을 기다립니다 (0) | 2020.11.03 |
[JQUERY] jQuery를 함께 텍스트를 제거 (0) | 2020.11.03 |
[JQUERY] SVG 요소 내부에 DIV를 추가 할 수 있습니까? (0) | 2020.11.03 |
[JQUERY] JQuery와없는 JQuery와 '트리거'방법의 상응하는 무엇입니까? (0) | 2020.11.03 |