如何基于两个条件设置jQuery操作

时间:2017-06-15 20:51:44

标签: jquery

我有一个正在制作的文本输入和AJAX数据库调用并使用一组基于搜索的链接填充相邻的div。当用户同时离开输入和div时,我想隐藏div。我不确定如何将功能放在一起检查两种情况。

这是HTML部分。

<form name="searchform" id="sform" action="searchflowers.asp" method="get" style="float:left">
<input type="hidden" name="mode" value="search">
<input type="hidden" name="pf" value="Y">
<input type="hidden" name="itype" value="flower">
<input type="search" name="srch" id="thisbox" maxlength="30" id="srch" placeholder="search flowers"
    autocomplete="off">
<input type="submit" value="Go" class="tinybutton">
<div id="suggestions"></div>

和脚本。

//jquery functions
$(document).ready(function(){
//initially hide suggestions box
$("#suggestions").hide()

//retrieve matching results
$("#thisbox").keyup(function () {
    $("#suggestions").show()
    $("#suggestions").load("scripts/getlist.asp?letters=" + $("#thisbox").val())
});

    //********** this is the piece I need to fix *************
$("#sform").mouseout(function () {
    $("#suggestions").hide("slow")
});

});

1 个答案:

答案 0 :(得分:0)

我在这里假设用户离开了输入和div&#39;你的意思是mouseleave事件对吗? (输入不是blur事件而div是mouseleave

如果你的建议div在里面表单中,那么你的代码几乎可以正常工作(你的示例代码中没有结束表单标记)。如果建议div意味着在表单之外,那么我建议在表单和建议div周围放置一个包装div,并将mouseleave事件挂钩到该容器而不是两者。

这是一个有效的JSFiddle,它考虑了表单的mouseleave事件(我将div 放在表单中),以及blur输入字段本身的事件(请注意,我无法访问您的&#39; scripts / getlist.asp&#39;,所以我只是在那里进行jsonplaceholder调用,因为你的关注似乎是用户界面的任何方式