Jquery ui 如果未找到任何内容,则从jquery ui自动完成中删除微调器
我想从支持jquery ui自动完成的textfield中删除微调器(显示正在加载的图片)。 由于没有“源未返回结果”的事件,因此a无法触发此事件Jquery ui 如果未找到任何内容,则从jquery ui自动完成中删除微调器,jquery-ui,autocomplete,Jquery Ui,Autocomplete,我想从支持jquery ui自动完成的textfield中删除微调器(显示正在加载的图片)。 由于没有“源未返回结果”的事件,因此a无法触发此事件 $( "#q" ).autocomplete({ source: "${createLink(mapping:'qsearch')}", minLength: 2, select: function( event, ui ) { foo( ui.item.id ); }, search: function(
$( "#q" ).autocomplete({
source: "${createLink(mapping:'qsearch')}",
minLength: 2,
select: function( event, ui ) {
foo( ui.item.id );
},
search: function( event, ui ) {
bla();
}
});
您可以编辑CSS并删除微调器
$(“具有微调器的对象”).removeClass(“ui自动完成加载”) 这是已知的jQuery UI未来版本的开放增强 将不得不等待和/或使用解决方法(如从服务器发送特殊响应并在打开事件中处理此情况)。根据我的回答改编,添加以下代码以在搜索完成后执行(即使结果为0): 该代码将触发一个事件(
autocompletesearchcomplete
),然后您可以绑定到该事件:
$("#q").bind("autocompletesearchcomplete", function(event, contents) {
/* Remove spinner here */
});
希望这能有所帮助。如果您使用的是较旧版本的jQuery ui,正确的答案是使用类
ui自动完成加载
,该类在请求/响应运行时被添加和删除。从jQuery ui v1.9开始,您可以执行以下操作:
$( "#q" ).autocomplete({
source: "${createLink(mapping:'qsearch')}",
select: function( event, ui ) {
foo( ui.item.id );
},
search: function( event, ui ) {
$( "#spinner" ).show();
},
response: function( event, ui ) {
$( "#spinner" ).hide();
}
});
$( "#q" ).autocomplete({
source: "${createLink(mapping:'qsearch')}",
select: function( event, ui ) {
foo( ui.item.id );
},
search: function( event, ui ) {
$( "#spinner" ).show();
},
response: function( event, ui ) {
$( "#spinner" ).hide();
}
});