【问题标题】:Jquery autosuggestion close when click everywhere到处点击时 Jquery 自动提示关闭
【发布时间】:2023-03-04 15:02:01
【问题描述】:

我有一个 Jquery Autosuggest 下拉菜单。 函数运行正常。

现在我希望当我右键单击或单击任何地方时,显示框必须保持显示。因为当自动建议搜索有链接时我发现了问题。链接无法打开,因为在单击链接之前下拉框已关闭。

到目前为止,这是我的 JS 代码:

$(document).ready(function(){
    $(".searchs").keyup(function()
    {
       var searchbox = $(this).val();
       var dataString = 'searchword='+ searchbox;
       if(searchbox=='')
       {
        $("#display").hide();
       }
       else
       {
          $.ajax({
              type: "POST",
              url: "searchs.php",
              data: dataString,
              cache: false,
              success: function(html)
              {
                 $("#display").html(html).show();
              }
           });
        }
       return false;
    }); 

        $(".searchs").blur(function(){
             $("#display").hide();
    });

    $(".searchs").focus(function(){
    var seachbox = $(searchbox).val();
    if(seachbox != '')
    {
       $("#display").show();
    }
    });
});

有人有想法吗?

【问题讨论】:

标签: php javascript jquery html


【解决方案1】:

这是继续显示自动完成结果列表的方式:DEMO

$("#tags").autocomplete({
source: availableTags,

 close : function (event, ui) {
     val = $("#tags").val();
     $("#tags").autocomplete("search", val).focus();
    return false;  
  }
});

【讨论】:

    【解决方案2】:

    您的下拉框关闭的原因是,每当您取消选择“搜索”类时,都会隐藏下拉框。要解决此问题,您可以尝试几种不同的方法。

    1:将您的下拉框(id 为“display”的下拉框)放在 “搜索”类。看起来类似于:

    <div id = "display" class = "searchs"></div>
    

    2:当你的$(".searchs").blur事件被触发时,在执行$("#display").hide();之前检查新焦点是否是你的显示div:

    $(".searchs").blur(function(){
      if($("#display").blur(function(){ //<--- if the new focus is not the display div, then hide display
        $("#display").hide();
      }
    });
    

    【讨论】:

      猜你喜欢
      • 2019-07-03
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-22
      相关资源
      最近更新 更多