如果用户在div外部单击,则删除类

时间:2014-01-16 16:41:39

标签: jquery search input

我有一个搜索输入,我隐藏了提交按钮。相反,当用户按下回车键时,会出现一个下拉列表,其结果使用以下js:

$(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类?

2 个答案:

答案 0 :(得分: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元素让用户专注于开始。

参考:

答案 1 :(得分:3)

你能试试吗,

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