自动完成关闭错误

时间:2014-03-19 12:26:52

标签: javascript jquery jquery-ui jquery-autocomplete

我的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");   

1 个答案:

答案 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");