2014-03-19 71 views
1

我有關於jQuery UI自動完成關閉參數的問題。自動完成關閉錯誤

本質上與關閉參數中的代碼,當自動完成是打開的,如果我點擊鏈接自動完成消失但鏈接不會觸發。

如果我刪除代碼,它的工作正常。

JS運行通過JS林特罰款,並沒有控制檯錯誤。

任何人有任何想法?

$('.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

如果你想在'浸軋top'設置爲零,如果是零_不_ - 那你爲什麼說封裝成一個'if',而不是僅僅將其設置爲零不管是什麼? (你真的檢查過你從$(「#mega-menu-search-results」).css(「padding-top」)得到的值嗎?如果它實際上是字符串「0px」?) – CBroe

+0

非常好的一點,這是我的一些舊代碼的宿醉。如果我刪除if語句,但問題仍然存在。 –

+0

你是什麼意思_「鏈接不開火」_? – CBroe

回答

0

好的,所以我有一個修復。

我猜測,自動完成必須在關閉參數中運行任何函數後返回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"); 
+0

我應該添加這個作品我停止事件發生,如果鏈接被點擊。這解決了我的具體情況,如果你想做其他事情,你將不得不延長。 –