Jquery 当用户单击正文或外部下拉菜单上的任意位置时,下拉菜单关闭
Html 管理显示或隐藏下拉菜单也与淡入类。唯一剩下的问题是,每次单击输入字段时,菜单将继续打开和关闭。在谷歌上查找答案,但徒劳。可能忽略了遗漏的东西。或者代码不对 谢谢你的帮助 没有“Jquery 当用户单击正文或外部下拉菜单上的任意位置时,下拉菜单关闭,jquery,Jquery,Html 管理显示或隐藏下拉菜单也与淡入类。唯一剩下的问题是,每次单击输入字段时,菜单将继续打开和关闭。在谷歌上查找答案,但徒劳。可能忽略了遗漏的东西。或者代码不对 谢谢你的帮助 没有“单击中的处理程序”的简化代码。整个想法是在点击时打开下拉菜单,将选中的 在每个上添加文档单击事件处理程序(还有两个的处理程序。图标关闭和类别选择)。js搜索单击绝对是个坏主意。此外,使用$(this).show()有什么意义on.fadeIn()completency?在输入字段中,您想右键显示下拉列表吗?@Re
单击中的处理程序”的简化代码。整个想法是在
点击时打开下拉菜单,将选中的
在每个上添加文档
单击事件处理程序(还有两个的处理程序。图标关闭
和类别选择
)。js搜索
单击绝对是个坏主意。此外,使用$(this).show()有什么意义
on.fadeIn()
completency?在输入字段中,您想右键显示下拉列表吗?@Regent:yah,未使用的代码有什么用,这样就可以用show完成了/hide@joe这就是我所说的。@AmolTate-是,当单击输入时,下拉列表将以淡入淡出的方式显示
<input type="text" class="js-search" name="" value="">
<div class="category-list">
<i class="icon-close"></i>
<div class="select-column">
<ul>
<li>
<a class="category-select" href="#">Test1</a>
</li>
<li>
<a class="category-select" href="#">Test2</a>
</li>
<li>
<a class="category-select" href="#">Test3</a>
</li>
</ul>
</div>
</div>
var search = $('.js-search');
var menu = $('.category-list');
var close = $('.icon-close');
var category = $('.category-select');
search.on('click', function(e){
e.preventDefault();
menu.fadeIn("normal", function() {
$(this).show();
$(document).click(function(e){
menu.fadeOut("normal", function() {
$(this).hide();
});
});
close.on('click', function(){
menu.fadeOut("normal", function() {
$(this).hide();
});
});
category.on('click', function(){
var el = $(this);
search.val("");
menu.fadeOut("normal", function(){
$(this).hide();
});
search.val(el.text());
});
});
});
$('body').click(function(e) {
if ($(e.target).closest(menu).length === 0) {
menu.fadeOut("normal", function() {
$(this).hide();
});
}
});
$(document).ready(function()
{
var search = $('.js-search');
var menu = $('.category-list');
var category = $('.category-select');
search.on('click', function()
{
menu.fadeIn("normal");
return false;
});
category.on('click', function()
{
search.val($(this).text());
});
$(document).on('click', function()
{
menu.fadeOut("normal");
});
});