如何在 jquery/js 中模仿此回调的功能?
How do I mimic the functionality of this callback in jquery/js?
我正在用我制作的库替换 jQuery-ui 自动完成库。我的输入元素的旧初始值设定项如下所示:
$('#search_input').autocomplete({
minLength: 2,
select: function(event, ui) {
$('.some_element').val('ui.item.id');
return false;
}
});
我的新自动完成库如下所示:
$.fn.custom_search = function() {
$(this).on('keydown click', (e) function(){
switch e.type {
case 'keydown':
...
search_term = $(this).val();
ajax_caller(search_term);
break;
case 'click'
...
break;
}
};
如何维护 jQuery-ui 自动完成的 'select' 功能?我希望在初始化程序中传递给 select 的所有内容都可以触发从我的自定义自动完成的搜索结果中 selected 的项目。
'ajax_caller' 函数将搜索词传递给控制器。控制器编译一个列表 returns 到 js.erb ,后者创建一个搜索词结果列表并将其附加到输入的底部。
当有人从搜索词结果中选择一个选项时,应该会触发 select 回调。
您需要将 select
回调作为选项传递到您的插件中,如下所示:
$.fn.custom_search = function(options) {
options = options || {};
var select = options.select || function() {};
$(this).on('keydown click', (e) function(){
switch e.type {
case 'keydown':
...
search_term = $(this).val();
select($(this), search_term);
...
}
};
然后你将像 jQuery 自动完成一样传递它:
$('#search_input').custom_search({
select: function(element, value) {
$('.some_element').val('ui.item.id');
return false;
}
});
另请查看 this jQuery plugin template,您可以找到更多类似的模板来帮助您编写结构良好的插件。
我正在用我制作的库替换 jQuery-ui 自动完成库。我的输入元素的旧初始值设定项如下所示:
$('#search_input').autocomplete({
minLength: 2,
select: function(event, ui) {
$('.some_element').val('ui.item.id');
return false;
}
});
我的新自动完成库如下所示:
$.fn.custom_search = function() {
$(this).on('keydown click', (e) function(){
switch e.type {
case 'keydown':
...
search_term = $(this).val();
ajax_caller(search_term);
break;
case 'click'
...
break;
}
};
如何维护 jQuery-ui 自动完成的 'select' 功能?我希望在初始化程序中传递给 select 的所有内容都可以触发从我的自定义自动完成的搜索结果中 selected 的项目。
'ajax_caller' 函数将搜索词传递给控制器。控制器编译一个列表 returns 到 js.erb ,后者创建一个搜索词结果列表并将其附加到输入的底部。
当有人从搜索词结果中选择一个选项时,应该会触发 select 回调。
您需要将 select
回调作为选项传递到您的插件中,如下所示:
$.fn.custom_search = function(options) {
options = options || {};
var select = options.select || function() {};
$(this).on('keydown click', (e) function(){
switch e.type {
case 'keydown':
...
search_term = $(this).val();
select($(this), search_term);
...
}
};
然后你将像 jQuery 自动完成一样传递它:
$('#search_input').custom_search({
select: function(element, value) {
$('.some_element').val('ui.item.id');
return false;
}
});
另请查看 this jQuery plugin template,您可以找到更多类似的模板来帮助您编写结构良好的插件。