如何在jquery自动完成结果的末尾添加自定义列表项
我正在使用jqueryautocomplete,我已经设置了这些变量如何在jquery自动完成结果的末尾添加自定义列表项,jquery,autocomplete,Jquery,Autocomplete,我正在使用jqueryautocomplete,我已经设置了这些变量 $("#some_id").autocomplete("search.php?in=somewhere", { width: 270, selectFirst: false }); $('#some_id').setOptions({max: 5}); 正如您所看到的,它返回5个列表项(结果),我想添加第六个列表项,其中应该显示一些文本以及除了这5个之外存在多少个结果 我该怎么做?可能需要对该
$("#some_id").autocomplete("search.php?in=somewhere", {
width: 270,
selectFirst: false
});
$('#some_id').setOptions({max: 5});
正如您所看到的,它返回5个列表项(结果),我想添加第六个列表项,其中应该显示一些文本以及除了这5个之外存在多少个结果
我该怎么做?可能需要对该函数进行编辑
function fillList() {
list.empty();
var max = limitNumberOfItems(data.length);
for (var i=0; i < max; i++) {
if (!data[i])
continue;
var formatted = options.formatItem(data[i].data, i+1, max, data[i].value, term);
if ( formatted === false )
continue;
var li = $("<li/>").html( options.highlight(formatted, term) ).addClass(i%2 == 0 ? "ac_even" : "ac_odd").appendTo(list)[0];
$.data(li, "ac_data", data[i]);
}
// INSERT YOUR ADDITIONAL ENTRY HERE...
listItems = list.find("li");
if ( options.selectFirst ) {
listItems.slice(0, 1).addClass(CLASSES.ACTIVE);
active = 0;
}
// apply bgiframe if available
if ( $.fn.bgiframe )
list.bgiframe();
}
函数fillList(){
list.empty();
var max=limitNumberOfItems(数据长度);
对于(变量i=0;i”).html(options.highlight(格式化,term)).addClass(i%2==0?“ac_偶数”):“ac_奇数”).appendTo(列表)[0];
$.data(li,“ac_数据”,数据[i]);
}
//在此处插入您的附加条目。。。
listItems=list.find(“li”);
如果(options.selectFirst){
slice(0,1).addClass(CLASSES.ACTIVE);
活动=0;
}
//应用bgiframe(如果可用)
如果($.fn.bgiframe)
list.bgiframe();
}
非常感谢!
这就是我所做的
function fillList() {
list.empty();
var max = limitNumberOfItems(data.length);
for (var i=0; i < max; i++) {
if (!data[i])
continue;
var formatted = options.formatItem(data[i].data, i+1, max, data[i].value, term);
if ( formatted === false )
continue;
var li = $("<li/>").html( options.highlight(formatted, term) ).addClass(i%2 == 0 ? "ac_even" : "ac_odd").appendTo(list)[0];
$.data(li, "ac_data", data[i]);
}
listItems = list.find("li");
//////////////////////////// TOM //////////////////////////////////////////////////////////////////////////////////
if( data.length > 5 ){
if( (data.length-5) == 1 ){
listItems[4].innerHTML +='<div style="position:absolute; top:127px; left:0px; width:260px;text-align:right;" >'+(data.length-5)+' item isn\'t shown</div>';
}
else{
listItems[4].innerHTML +='<div style="position:absolute; top:127px; left:0px; width:260px;text-align:right;" >'+(data.length-5)+' items aren\'t shown</div>';
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if ( options.selectFirst ) {
listItems.slice(0, 1).addClass(CLASSES.ACTIVE);
active = 0;
}
// apply bgiframe if available
if ( $.fn.bgiframe )
list.bgiframe();
}
函数fillList(){
list.empty();
var max=limitNumberOfItems(数据长度);
对于(变量i=0;i”).html(options.highlight(格式化,term)).addClass(i%2==0?“ac_偶数”):“ac_奇数”).appendTo(列表)[0];
$.data(li,“ac_数据”,数据[i]);
}
listItems=list.find(“li”);
////////////////////////////汤姆//////////////////////////////////////////////////////////////////////////////////
如果(data.length>5){
如果((数据长度-5)==1){
listItems[4]。innerHTML+=''+(data.length-5)+'项目未显示';
}
否则{
listItems[4]。innerHTML+=''+(data.length-5)+'未显示项';
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
如果(options.selectFirst){
slice(0,1).addClass(CLASSES.ACTIVE);
活动=0;
}
//应用bgiframe(如果可用)
如果($.fn.bgiframe)
list.bgiframe();
}
我就是这么做的,在这个例子中,我的后端有一个json(对于默认html,可能可以稍微调整一下:),但整个想法应该是一样的
$('#search').autocomplete({
source: function(request, response) {
var requestUrl = 'search.php';
requestUrl += '?term=' + $('#search').val();
$.getJSON(requestUrl, request, function(data){
// I know here - what kind of array of json objects I'll get as
// a result, with <li> elements it should be even easier (I guess)
// AND: this will add item, if there are more than 5 elms in the list,
// but you should get the idea
if (5 < data.length) {
data.push({
id: -1,
value: '',
label: 'Put your own question...'
});
}
response(data);
});
}
});
$(“#搜索”)。自动完成({
来源:功能(请求、响应){
var requestUrl='search.php';
requestUrl+='?term='+$('#搜索').val();
$.getJSON(请求URL、请求、函数(数据){
//我知道这里——我将得到什么样的json对象数组
//因此,使用元素应该更容易(我猜)
//和:如果列表中有5个以上的榆树,这将添加项,
//但你应该明白这一点
如果(5<数据长度){
数据推送({
id:-1,
值:“”,
标签:“提出你自己的问题…”
});
}
答复(数据);
});
}
});