所以我已经确定了问题,但无法修复它。我正在使用JQuery Autocomplete在网站上执行搜索,此搜索位于所有页面上。
刷新页面时,它会加载搜索框所在的页眉页面,然后开始加载小部件,现在加载小部件大约需要1-3秒,具体取决于有多少数据。
如果在加载这些小部件之前在搜索框中键入内容,则自动完成会查找内容并显示它们,但只要小部件完成加载,它们就会关闭自动完成。原因是它将焦点从自动完成输入框中移除。
我无法修改代码以查看是否所有窗口小部件都已加载,自动填充功能是否可以保持打开状态,即使它没有聚焦?
注意:数据已正确返回以进行自动完成,它会调用ajax&数据存在,但一旦加载整个页面(小部件)就会消失
自动填充代码:
$(".search-input-box").autocomplete({
source: function( request, response ) {
var data = {t1: 1, t2: 2}; //
$.ajax({
type: 'post',
url: "/autocompletesearch",
dataType: "json",
data: data,
beforeSend: function() {
// show some loading icon
},
success: function( data ) {
response( $.map( data[0], function( item ) {
return {
label: item.t1,
value: item.t2
}
}));
}
});
},
minLength: 3,
position: { my : "right top", at: "right bottom" },
open: function (event, ui){
// some open code (nothing important)
},
close: function(){
// some closing code (clean up)
},
focus: function() {
return false
},
select: function(event, ui) {
// redirect to some page
return false;
},
delay: 300
}).data( "ui-autocomplete" )._renderItem = function( ul, item ) {
return $( "<li>" )
.append('<div class="item-list">' +
'<b class="item-value">' + item.label + '</b>' +
'</div>' )
.data("ui-autocomplete-item", item)
.appendTo( ul );
}