点击无处不在时,Jquery自动提示关闭

时间:2012-12-03 05:23:34

标签: php javascript jquery html

我有一个Jquery Autosuggest下拉列表。 该功能正常运行。

现在我希望当我右键单击或点击时,显示框必须一直显示。因为我在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();
    }
    });
});

有人有想法吗?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分: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();
  }
});