-1

我有一个 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();
    }
    });
});

有人有想法吗?

4

2 回答 2

0

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

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

 close : function (event, ui) {
     val = $("#tags").val();
     $("#tags").autocomplete("search", val).focus();
    return false;  
  }
});
于 2012-12-03T06:01:24.363 回答
0

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

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();
  }
});
于 2012-12-03T06:08:00.373 回答