javascript
  • jquery
  • ajax
  • 2013-05-13 199 views 0 likes 
    0

    無法解決我在這裏做錯了什麼。如果搜索字段中沒有任何內容或網站的任何區域被點擊,我希望自動完成div關閉,類似於onblur。相反,div保持存在。這是我的代碼:關閉自動完成

    $(document).ready(function(){ 
    
    $(".search").keyup(function() 
    { 
    var searchbox = $(this).val(); 
    var dataString = 'searchword='+ searchbox; 
    
    if(searchbox=='') 
    { 
    } 
    else 
    { 
    
    $.ajax({ 
    type: "POST", 
    url: "search.php", 
    data: dataString, 
    cache: false, 
    success: function(html) 
    { 
    
    $("#display").html(html).show(); 
    
    
        } 
    
    }); 
    }return false;  
    
    }); 
    }); 
    

    「Display」是我的自動完成div。在其他地方cliked時隱藏display

    see demonstration

    var handler = function(event){ // to hide "#display" on elsewhere click 
    if($(event.target).not("#display *") || $(".search").val().length != 0) return;  
        $("#display").hide(); 
    } 
    
    $(document).on("click", handler); 
    

    以上處理器 -

    +1

    爲什麼不試試jQuery的自動完成HTTP://jqueryui.com/autocomplete ???? – Shin 2013-05-13 04:10:32

    +0

    嘗試alert(html); ,得到任何結果? – Shin 2013-05-13 04:15:25

    回答

    0

    試試這個。如果點擊裏面display它不會隱藏。

    而且

    $(".search").keyup(function(){ 
        var searchbox = $(this).val(); 
        if(searchbox.length === 0) // if field is blank hide div again. 
          $("#result").hide(); 
    .... // remaining code ---- 
    
    相關問題