2016-11-14 3 views
1

Ich versuche, Suchergebnisse zu verbergen, wenn der Fokus nicht auf der Sucheingabe liegt. Ich kann das leicht tun, indem ich nach der .keyup() Funktion verwende. Mein Problem ist, dass, wenn ein Benutzer auf das Suchergebnis klickt ... es verbirgt sich immer noch. Also, ich möchte es machen, damit, wenn der Benutzer den Fokus von der Texteingabe entfernt und Benutzer konzentriert sich nicht auf Suchergebnis dann verstecken nur die divSuchergebnis ausblenden, wenn der Fokus nicht auf Eingabe liegt

HTML:

<form role="search" autocomplete="off"> 
    <div> 
    <input id="searchInput" type="text" placeholder="Search"> 
    </div> 
    <div class="search_main"> 
    <div id="sresult" tabindex="0"></div> 
    </div> 
</form> 

jQuery:

$("#searchInput").keyup(function(e) { 
    var q = $(this).val(); 
    if (q !== undefined && q.length > 0) { 
    $("#sresult").show(150); 
    $("#sresult").html("No results"); 
    } else { 
    $("#sresult").hide(150); 
    } 
}).blur(function(e) { 
    $("#sresult").hide(150); 
}); 

JSFiddle Demo

+0

Da gibt es keine solche conditio n Sie haben angegeben, dass Ihr Suchergebnis sichtbar bleibt. –

+0

Sie müssen die Unschärfeverkettung entfernen, wenn Sie sichtbar bleiben und andere Dinge definieren möchten, wenn sie sich verstecken sollen. –

Antwort

1

Gerade einfaches Add mehrere Ereignissemit EreignisHandler

element.on('event1 event2 etc...') 

Ihre Veranstaltung wäre wie dieser

$("#searchInput").on('keyup click',function(e) { 
    var q = $(this).val(); 
    if (q !== undefined && q.length > 0) { 
     $("#sresult").show(150); 
     $("#sresult").html("No results"); 
    } else { 
     $("#sresult").hide(150); 
    } 
}).blur(function(e) { 
    $("#sresult").hide(150); 
}); 

diese Weise durch die Zeit Element klicken oder die Funktion keyUp wird Ihr Ergebnis gezeigt ausgeführt werden, die

DEMO

Ich hoffe, dies hilft Ihnen

+0

Es schließt immer noch, wenn ich auf "Keine Ergebnisse" klicke – user4756836

+0

Es ist wegen Ihrer Unschärfe-Ereignis – Beginner

+0

Ich weiß ... weshalb meine Frage war, "No results" nur zu verstecken, wenn der Benutzer nicht auf "No results" klickt oder konzentriere dich auf das Textfeld – user4756836

Verwandte Themen