我对 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
我创建的每个组合框实例指定一个回调来处理。
有人可以指出我如何做到这一点的正确方向吗?