2014-01-16 2 views
2

У меня есть вход для поиска, и я спрятал кнопку отправки. Вместо этого, когда пользователь нажимает введите, выпадающий список появляется в результате, используя следующие JS:Удалите класс, если пользователь нажимает на div.

$(function() { 
    $("form input").keypress(function (e) { 
    if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) { 
     $(this).next("#searchResult").addClass('show'); 
     return false; 
    } else { 
     return true; 
    } 
    }); 
}); 

Как убедиться, что класс .show удаляется, если пользователь щелкает за пределами #searchResult?

+1

Depends, если это произойдет каждый раз, когда DIV не щелкнули, или если DIV имеет сосредоточиться сначала? –

ответ

4

Вы можете использовать blur событие для обнаружения, когда элемент теряет фокус:

$("#searchResult").on("blur", function(){ 
    // The users focus is no longer on this element! 
}); 

Вы также можете написать это как:

$("#searchResult").blur(function(){ 
    // The users focus is no longer on this element! 
}); 

Это, конечно, при условии, что #searchResult элемент имел пользователи ориентируются на начало.

Ссылка:

3

Вы можете попробовать это,

$("body:not(#searchResult)").click(function(){ 
    $("#searchResult").removeClass("show"); 
}); 
+1

Здесь вы должны упомянуть, что * любой * щелчок, * в любом месте * вне элемента в * в любое время * будет вызывать обратный вызов и удалить класс (даже если класс уже удален). – Lix

Смежные вопросы