Bra*_*don 3 jquery jquery-ui jquery-autocomplete
在玩了一下jQuery的自动完成功能之后,我无法点击选择事件来点击.这很奇怪,因为当鼠标拖过列表中的每个元素时会触发onfocus事件.从我到目前为止所尝试的情况来看,看起来并没有内置的方法可以点击onclick选择事件.我错过了什么吗?或者,过去人们有另一种处理方式吗?
在此先感谢,布兰登
所选事件应在单击时自动触发.请考虑以下代码块.在这里,我传递了一组处理程序,以决定使用什么URL,将自动完成行为附加到哪个标签等等.最终制作一个ajax请求来填充自动完成列表.
ActivateInputFieldSearch: function (callBack, fieldID, urlHandler, labelHandler, valueHandler) {
$("#" + fieldID).autocomplete({
source: function (request, response) {
var requestUrl;
if (_.isFunction(urlHandler)) {
requestUrl = urlHandler(request);
} else {
requestUrl = urlHandler;
}
$.ajax({
url: requestUrl,
dataType: "json",
data: {
maxRows: 10,
searchParameter: request.term
},
success: function (data) {
response($.map(data, function (item) {
var dataJson = $.parseJSON(item);
return {
label: labelHandler(dataJson),
value: valueHandler(dataJson),
data: dataJson
};
}));
}
});
},
minLength: 0,
select: function (event, ui) {
if (callBack) {
callBack(ui.item);
}
},
open: function () {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function () {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
},
focus: function (event, ui) {
$("#" + fieldID).val(ui.item.value);
}
});
}
Run Code Online (Sandbox Code Playgroud)