私はjqueryを初めて使用し、最近、必要に応じてjqueryコンボボックスを調整しました。ただし、このコンポーネントをサイトの他の場所で再利用する必要があります。基本的に、いくつかの引数と、jquery で特定のイベントを処理するために呼び出されるコールバック関数を渡す必要があります。私は構文に苦労しており、物事を行うjqueryの方法を見つけようとしています:
サンプルを提供するために、ここにのがsource
ありcombobox -> input -> autocomplete -> source
ます:
(参照用に動作するjsfiddleを作成しました)
source: function( request, response ) {
// implements retrieving and filtering data from the select
var term = request.term;
var prefixLength = 2;
if (term.length >= prefixLength) {
var abbreviation = term.substring(0, prefixLength);
if(!(abbreviation.toLowerCase() in cache)){
cache[abbreviation.toLowerCase()] = 1;
$.ajax({
url: "/wah/destinationsJson.action",
dataType: "json",
data: {
term: abbreviation
},
type: "GET",
success: function(data) {
if(!data || !data.cities || !data.cities.length){
// response(["No matches for " + term]);
return;
}
updateOptions(select, data.cities);
response(filterOptionsForResponse(select, term));
return;
}
});
}
}
response(filterOptionsForResponse(select, term));
}
ここupdateOptions(...)
に、filterOptionsForResponse(select, term)
単純な JavaScript 関数があります。
source
再利用するには、作成するコンボボックスのすべてのインスタンスを処理するコールバックを指定する必要があります。
誰かがこれを行う方法について正しい方向に向けることができますか?