如何设置基于两个条件的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")
});
});
答
我在这里假设'用户离开输入和div'你的意思是mouseleave
事件对吗? (不blur
事件输入和mouseleave
为DIV)
如果您的建议是DIV里面的形式,那么你的代码工作相当多的是(有在你的示例代码没有结束表单标签)。如果建议div意在超出表单的范围,那么我会建议在表单和建议div周围添加一个包装div,并将您的mouseleave
事件挂接到该容器而不是两者。
这里是一个工作JSFiddle,考虑到mouseleave
事件的形式(我把你的DIV 内形式),以及blur
事件输入字段本身(注意,我用不上到你的'脚本/ getlist.asp',所以我只是在那里放了一个jsonplaceholder的电话,因为你在这里的关注似乎是任何方式的用户界面)
Umm ...当用户离开输入时设置一个变量。当你离开div时检查变量吗? –
当你说“用户离开文本框”时,你的意思是他们什么时候忽略它? – tt9
请请 - 学习如何使用** angularjs **或**反应**而不是使用jQuery - 它会让你的生活更轻松 – ymz