매개 변수가 포함된 콜백 함수를 전달하시겠습니까?
나는 아래 코드를 가지고 있습니다.
function getGrades(grading_company) {
if (grading_company == 'Not Specified') {
// Remove grades box & show condition box
showConditionBox();
} else {
// Set file to get results from..
var loadUrl = "ajax_files/get_grades.php";
// Set data string
var dataString = 'gc_id=' + grading_company;
// Set the callback function to run on success
var callback = showGradesBox;
// Run the AJAX request
runAjax(loadUrl, dataString, callback);
}
}
function runAjax(loadUrl, dataString, callback) {
jQuery.ajax({
type: 'GET',
url: loadUrl,
data: dataString,
dataType: 'html',
error: ajaxError,
success: function(response) {
callback(response);
}
});
}
편집: 콜백 함수로 호출되는 함수는 다음과 같습니다.
function showGradesBox(response) {
// Load data into grade field
jQuery('#grade').html(response);
// Hide condition fields
jQuery('#condition').hide();
jQuery('#condition_text').hide();
// Show grade fields
jQuery('#grade_wrapper').show();
jQuery('#grade_text_wrapper').show();
}
만약 내가 통과하고 싶다면,grading_company
매개 변수로서의 콜백 함수에 대한 변수는 그것을 다른 매개 변수로 추가할 필요 없이 그것을 하는 방법이 있습니까?runAjax
전화요? 저는 계속하려고 노력하고 있습니다.runAjax
다른 용도로 사용할 수 있는 기능을 제공하여 추가 매개 변수를 전달하고 싶지 않습니다. 하지만 어떻게든 콜백에 포함될 수 있다면 좋습니다.
익명 기능으로 콜백 변경:
// Set the callback function to run on success
var callback = function () {
showGradesBox(grading_company);
};
이렇게 하면 매개변수를 내부 함수로 전달할 수 있습니다.
편집: Ajax 응답을 허용하려면:
// Set the callback function to run on success
var callback = function (response) {
showGradesBox(grading_company, response);
};
다른 가능성은 하는 대신에dataString
하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다dataObject
그런 다음 해당 개체를 콜백으로 전달합니다.이와 같은 경우:
function getGrades(grading_company) {
if (grading_company == 'Not Specified') {
// Remove grades box & show condition box
showConditionBox();
} else {
// Set file to get results from..
var loadUrl = "ajax_files/get_grades.php";
// Set data object
var dataObject = {
'gc_id' : grading_company
/*to do multiples..
'item1' : value1,
'item2' : value2,
'etc' : etc */
}
// Set the callback function to run on success
var callback = showGradesBox;
// Run the AJAX request
runAjax(loadUrl, dataObject, callback);
}
}
function runAjax(loadUrl, dataObject, callback) {
jQuery.ajax({
type: 'GET',
url: loadUrl,
data: $.param(dataObject),
dataType: 'html',
error: ajaxError,
success: function(response) {
callback(response, dataObject);
}
});
}
의 추가 내용에 유의하십시오.$.param()
.
그러면 콜백 기능에서는 어떤 데이터를 찾고 있는지 알아야 합니다. 만약에.function setGrades(resp, data) { ... }
콜백을 한 다음 의 값에 액세스할 수 있습니다.setGrades
function setGrades(resp, data) {
alert( data.gc_id);
}
편집
테스트 후에, 저는 그것을 깨달았습니다.$(dataObject).serialize()
작동하지 않습니다.그래서 사용하도록 업데이트했습니다.$.param()
자세한 내용은 이 SO 게시물을 참조하십시오.
언급URL : https://stackoverflow.com/questions/14200021/passing-a-callback-function-with-included-parameters
'programing' 카테고리의 다른 글
'org. spring framework' 유형의 콩.security.oauth2.client.registration.'클라이언트 등록 리포지토리'를 찾을 수 없습니다. - Spring Security (0) | 2023.08.10 |
---|---|
각 도커 이미지의 레이어 및 레이어 크기 찾기 (0) | 2023.08.10 |
목록의 모든 항목이 없음인지 확인하는 방법은 무엇입니까? (0) | 2023.08.10 |
엑셀 VBA의 Rnd()가 정말 이렇게 나쁜가요? (0) | 2023.08.10 |
교차 검증 등을 위해 데이터 세트를 교육 및 테스트 데이터 세트로 분할/분할하는 방법은 무엇입니까? (0) | 2023.08.10 |