Javascript 使用元素id单击页面的其他部分时隐藏div

Javascript 使用元素id单击页面的其他部分时隐藏div,javascript,jquery,search,click,enter,Javascript,Jquery,Search,Click,Enter,在我的网站上,我有很多搜索框。我使用javascript在单击外部搜索结果时隐藏搜索结果。为此,我使用下面的代码 $(document).click(function (e) { if (!$(e.target).is('#elem1, #elem2, #elem3, #elem4, #elem5')) { $("#elem1").hide(); $("#elem1").html(""); $("#elem2").hide();

在我的网站上,我有很多搜索框。我使用javascript在单击外部搜索结果时隐藏搜索结果。为此,我使用下面的代码

$(document).click(function (e) {

    if (!$(e.target).is('#elem1, #elem2, #elem3, #elem4, #elem5')) {
        $("#elem1").hide();
        $("#elem1").html("");
        $("#elem2").hide();
        //$("#elem3").hide();
        $("#elem4").show();
        $("#elem5").show();
    }
});
$("#search-field").keyup(TriggeredFunction);

function TriggeredFunction(e) {
e = e || window.event;
var keycode;
if (window.event) {
    keycode = e.which ? window.event.which : window.event.keyCode;
}
var key = e.which;
switch (key) {
    case 13:
        //action code
        break;
    default: 
        //default code
}
}
搜索字段为

<form name="form-name">
    <input type="text" value="" id="search-field" />
    <button value="search" id="search-button">
</form>    

这个代码工作得很好。还有li works Perfect上的点击事件。但有一次我试图编写一个函数,当我按下回车键时调用它。enter-press调用了上面的$document.click函数,这一次,click-on-li也可以正常工作。使搜索结果变为空。我正在从搜索结果中提取数据。由于这个原因,我无法获取数据。有没有办法防止这种情况?请帮助

您最好停止搜索字段中冒泡的事件

在JQuery中:

$( "#search-field, #search-button" ).click(function( event ) {
  event.stopPropagation();
});
在香草JavaScript中:

if(event.stopPropagation) {
    event.stopPropagation();
} else {
    event.cancelBubble = true;
}

想想看,你不能先创建一个全局变量,然后在TriggeredFunction函数中设置某个特定值,然后在$document中设置。单击函数e检查该变量是否具有该特定值,然后不要清空搜索结果?
if(event.stopPropagation) {
    event.stopPropagation();
} else {
    event.cancelBubble = true;
}