コールバックの追加パラメータを渡す方法を理解しようとしています。これまで私は以下のコードを持っています。これまでのところ、これを達成するためにどのようにコールバックにパラメータを渡す
$("#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
}
私の考えは以下のとおりです。
- 私は(グローバルスコープを汚染します)グローバルスコープにあるドロップダウン変数を設定し、それをそのようにアクセスすることができました。
- 私はdropdown要素をgetMPTypeGrades関数に渡し、それをコールバック関数に渡すことができます。 (私は可能な限り一般的なようgetMPTypeGradesを維持したい。私は常にjQueryの要素を受け入れ、コールバックを渡すことになります場合、私は知りません。)
jQueryの要素と渡すための最善の方法は何ですかコールバックのパラメータとしてのAjaxレスポンス
'bind'引数で' pop'GradesDropdown'に 'this'キーワードでアクセスできます。 – Mouser
しかし、 'populateGradesDropdown'は普遍的な関数かもしれないし、そのコンテキストを使うかもしれません。しかし、あなたは正しいです。 – Maxx