我的jQuery UI Autocomplete的close参数存在问题。
基本上使用close参数中的代码,当自动填充功能打开时,如果我单击链接,则自动填充功能会消失,但链接不会触发。
如果我删除代码,它可以正常工作。
JS运行JS Lint很好,并且没有控制台错误。
有人有什么想法吗?
$('.mega-menu-search').autocomplete({
source: window.searchTA.split(','),
select: function( event, ui ) {
megaMenuSearchAbort();
megaMenuSearchTimeAndGo();
lastSearch = $(this).val();
},
close: function(event, ui ) {
// This is the troublesome code
if($("#mega-menu-search-results").css("padding-top") !="0px") {
$("#mega-menu-search-results").css("padding-top", "0px");
}
}
}).autocomplete("widget").addClass("mega-menu-autocomplete");
答案 0 :(得分:0)
好的,我得到了解决方法。
我猜测自动完成必须在运行close参数中的任何函数后返回false或停止传播。
在下面的代码中,我删除了原始代码中的剩余if语句,尽管即使将其保留,但此修复仍然有效。
$('.mega-menu-search').autocomplete({
source: window.searchTA.split(','),
select: function( event, ui ) {
megaMenuSearchAbort();
megaMenuSearchTimeAndGo();
lastSearch = $(this).val();
},
close: function(event, ui ) {
// Changed code
if(e.target.nodeName != 'A') {
$("#mega-menu-search-results").css("padding-top", "0px");
}
//
}
}).autocomplete("widget").addClass("mega-menu-autocomplete");