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

问题描述:

我有一个文本输入是制作和AJAX数据库调用和填充一个基于搜索的链接集相邻的div。当用户离开输入和div时,我想隐藏div。我不知道如何将一个函数放在一起检查两个条件。如何设置基于两个条件的jQuery动作

这是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") 
}); 

});

+0

Umm ...当用户离开输入时设置一个变量。当你离开div时检查变量吗? –

+0

当你说“用户离开文本框”时,你的意思是他们什么时候忽略它? – tt9

+0

请请 - 学习如何使用** angularjs **或**反应**而不是使用jQuery - 它会让你的生活更轻松 – ymz

我在这里假设'用户离开输入和div'你的意思是mouseleave事件对吗? (不blur事件输入和mouseleave为DIV)

如果您的建议是DIV里面形式,那么你的代码工作相当多的是(有在你的示例代码没有结束表单标签)。如果建议div意在超出表单的范围,那么我会建议在表单和建议div周围添加一个包装div,并将您的mouseleave事件挂接到该容器而不是两者。

这里是一个工作JSFiddle,考虑到mouseleave事件的形式(我把你的DIV 形式),以及blur事件输入字段本身(注意,我用不上到你的'脚本/ getlist.asp',所以我只是在那里放了一个jsonplaceholder的电话,因为你在这里的关注似乎是任何方式的用户界面