Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何仅在两个div失焦时激活Onblur JQUERY:Javascript_Javascript_Jquery_Css - Fatal编程技术网

如何仅在两个div失焦时激活Onblur JQUERY:Javascript

如何仅在两个div失焦时激活Onblur JQUERY:Javascript,javascript,jquery,css,Javascript,Jquery,Css,对于自动建议 我有一个用于输入标记的div和另一个用于建议div…我希望建议div在其中一个之后消失 1) 在“建议”分区中选择了一个元素 或 2) 单击两个div之外的区域时 现在的问题是在哪里添加一个“onblur”事件 <input type = "text" name= "target" value = "" id="target" style="width:150px" onblur ="setTimeout('removeSuggestions()', 20);" onkeyu

对于自动建议

我有一个用于输入标记的div和另一个用于建议div…我希望建议div在其中一个之后消失

1) 在“建议”分区中选择了一个元素

2) 单击两个div之外的区域时

现在的问题是在哪里添加一个“onblur”事件

<input type = "text" name= "target" value = "" id="target" style="width:150px" onblur ="setTimeout('removeSuggestions()', 20);" onkeyup ="getSuggestions(this.value);"/>

<div id ="suggestions"></div>

但每次我尝试单击一个建议时,建议div就会消失,因为一旦我离开输入字段,就会调用删除建议。超时应该有帮助,但没有。我怎样才能解决这个问题呢?

也许这样可以解决你的问题。我们只需要监控搜索框的模糊度,因为点击搜索框(即使是根据建议)会触发隐藏事件


但是为什么我没有工作?…这解决了我的方法的什么“问题”?…我想它会工作,但是你有一个20毫秒的超时时间。太短了,没人注意到。在我看来,这是一种糟糕的做事方式。故障排除困难,容易损坏。
function getSuggestions(value){
   if (value !=""){
   $.post("target.php", {targPart:value}, function(data) {
     $("#suggestions").html(data);
    if(value.length>2){
        doCSS();
        }

   });
   } else {
    removeSuggestions();
    }

  }

   function removeSuggestions(){

   $("#suggestions").html("");
   undoCSS();
   }
  function addText(value){

      $("#target").val(value);

  }
  function doCSS(){
  $("#suggestions").css({
      'border' : 'solid',
       'border-width': '1px'

    });

  }

  function undoCSS(){
   $("#suggestions").css({
      'border' : '',
       'border-width': ''

    });
  }
$('#search').focus(function() {
    $('#suggestions').slideDown();
});

$('#search').blur(function() {
    $('#suggestions').slideUp();
});

$('#suggestions div').click( function() {
    $('#search').val($(this).html());
});