我想弄清楚如何傳遞我的回調附加參數。到目前爲止,我有以下代碼。將參數傳遞給回調
$("#refine_mp_type").change(function(){
var mp_type = $(this).val();
var country_id = $('#refine_country').val();
var dropdown = $('#refine_grade').find('select');
getMPTypeGrades(country_id, mp_type, populateGradesDropdown);
});
function getMPTypeGrades(country_id, mp_type, callback){
display_wait_dialog ("Please Wait", "Loading grades...");
$.ajax(
{
//do ajax
})
.done(function(data){
callback(data);
})
.fail(//do something)
.always(//do something);
}
populateGradesDropdown(data){
//populate the dropdown with the returned data
}
我至今對如何實現這一想法是:
- 我可以在下拉變量設置爲全局範圍和訪問它的方式(會污染全局範圍)。
- 我可以通過下拉元素獲取MPTypeGrades函數,然後將其傳遞給回調函數。 (我想保持getMPTypeGrades儘可能通用,我不知道是否我總是會傳遞一個接受JQuery元素的回調函數。)
什麼是傳遞JQuery元素和Ajax響應作爲我的回調參數?
當你設置'dropdown'作爲第一這個綁定的參數,你可以用'this'關鍵字在'populateGradesDropdown'中訪問它。 – Mouser
是的,但'populateGradesDropdown'可能是通用函數,可能會使用它的上下文。但你是對的。 – Maxx