jQuery UI输入自动完成无匿名功能
jQuery UI input autocomplete without anonymous function
我设法让jQuery UI自动完成工作。然而,由于我在许多输入字段中使用它,我想使它更通用,所以我不必复制它。所以不用下面的代码:
$(function() {
var cache = {};
$("#searchGuyInput").autocomplete({
minLength: 2,
source: function(request, response) {
// Getting a JSON array to populate the list
var term = request.term;
if (term in cache) {
response(cache[ term ]);
return;
}
$.getJSON("c_select_guy.php", {request: term}, function(data, status, xhr) {
cache[ term ] = data;
response(data);
});
},
select: function(event, ui) {
// What happens once I have selected a name from the list
if (ui.item){
createInputField(ui.item.Name + " " + ui.item.Surname,ui.item.guyID);
}
}
})
.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
// Here I can format the JSON array to display the rows in the list
return formatted;
};
function createInputField(message, guyID) {
// creates a new div for the selected element
};
});
我尝试使用:
function autocomp(inputID) { //CHANGED
var cache = {};
$(inputID).autocomplete({ //CHANGED
minLength: 2,
source: function(request, response) {
// Getting a JSON array to populate the list
var term = request.term;
if (term in cache) {
response(cache[ term ]);
return;
}
$.getJSON("c_select_guy.php", {request: term}, function(data, status, xhr) {
cache[ term ] = data;
response(data);
});
},
select: function(event, ui) {
// What happens once I have selected a name from the list
if (ui.item){
createInputField(ui.item.Name + " " + ui.item.Surname,ui.item.guyID);
}
}
})
.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
// Here I can format the JSON array to display the rows in the list
return formatted;
};
function createInputField(message, guyID) {
// creates a new div for the selected element
};
}
autocomp("#searchGuyInput"); //CHANGED
我用//CHANGED注释突出了这3个变化。
然而现在,即使自动完成返回给我一个很好的填充元素列表,当我从自动完成的select
函数中的ui.item
变量的元素选择是未定义的,它不再工作了!
我理解错了什么?
我认为$(function());
只是在javascript中定义匿名函数的一种方式,因此,如果我将其命名,我可以多次调用它用于不同的输入字段。
找到这个线程的解决方案:如何创建通用的(可重用的)JavaScript自动完成函数
显然将其称为
autocomp("#searchGuyInput");
不起作用,你需要调用它为:
$(function() {
autocomp("#searchGuyInput");
});
我仍然不明白这些$(function()
调用做什么,所以如果有人想澄清它,我将非常高兴。
相关文章:
- Angular JS和jQuery UI自动完成功能
- Angular UI Select2指令搜索功能不起作用
- 一些sencha/enyo风格功能的主干兼容UI/组件库
- MVC 分部视图中的 JQuery UI 自动完成功能只能工作一次
- 剑道UI移动版 - 按钮点击时调用功能时出现问题
- 角度:ui选择.具有“刷新”功能的自定义标记
- jQuery加载函数后,jQuery UI自动完成功能不起作用
- 谷歌应用程序脚本搜索UI下一个和上一个功能
- Angular UI TinyMCE,如何设置打印功能
- 如果与同步功能一起使用,将延迟阻塞UI
- 如何在单页移动布局中触发功能?$.ui.disableSideMenu();在应用框架上
- 为剑道UI窗口添加全局功能
- 如何在UI选择菜单中为每个选项指定选择功能
- 角度UI,控制器中的离子触发功能
- 在使用 react 和 material-ui 动态创建菜单项时,为什么 onTouchStart 会自动执行功能
- 剑道UI登录功能
- jQuery UI 自动完成功能将焦点放在鼠标输出上
- 如何让 JQuery-UI 自动完成功能在使用远程源的类别时按回车键提交
- 分享FB.ui功能如何捕捉关闭事件电话差距应用程序
- jQuery UI 自动完成功能