Jquery 当用户单击正文或外部下拉菜单上的任意位置时,下拉菜单关闭

Jquery 当用户单击正文或外部下拉菜单上的任意位置时,下拉菜单关闭,jquery,Jquery,Html 管理显示或隐藏下拉菜单也与淡入类。唯一剩下的问题是,每次单击输入字段时,菜单将继续打开和关闭。在谷歌上查找答案,但徒劳。可能忽略了遗漏的东西。或者代码不对 谢谢你的帮助 没有“单击中的处理程序”的简化代码。整个想法是在点击时打开下拉菜单,将选中的 在每个上添加文档单击事件处理程序(还有两个的处理程序。图标关闭和类别选择)。js搜索单击绝对是个坏主意。此外,使用$(this).show()有什么意义on.fadeIn()completency?在输入字段中,您想右键显示下拉列表吗?@Re

Html

管理显示或隐藏下拉菜单也与淡入类。唯一剩下的问题是,每次单击输入字段时,菜单将继续打开和关闭。在谷歌上查找答案,但徒劳。可能忽略了遗漏的东西。或者代码不对

谢谢你的帮助

没有“
单击
中的
处理程序”的简化代码。整个想法是在
点击时打开下拉菜单,将选中的


在每个
上添加
文档
单击事件处理程序(还有两个
的处理程序。图标关闭
类别选择
)。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");
    });
});