Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
如果单击jQuery?_Jquery - Fatal编程技术网

如果单击jQuery?

如果单击jQuery?,jquery,Jquery,用下面的代码。。。是否可以说,如果单击了li,则执行此操作,如果没有(用户单击其他位置),则执行此操作?只有当用户单击列表中的某个内容时,该代码才会使div消失。我需要它消失,如果他们点击其他任何地方以及??谢谢 .bind('blur', function() { $('#search_suggestions_list li').click(function() { var selectedString = $(this).text(); $('#search

用下面的代码。。。是否可以说,如果单击了li,则执行此操作,如果没有(用户单击其他位置),则执行此操作?只有当用户单击列表中的某个内容时,该代码才会使div消失。我需要它消失,如果他们点击其他任何地方以及??谢谢

.bind('blur', function() {
   $('#search_suggestions_list li').click(function() {
       var selectedString = $(this).text();
       $('#search-box').val(selectedString);
       setTimeout("$('#search_suggestions').fadeOut('fast');", 200);
   })
})

请确保返回false,否则还会调用文档单击事件。

处理文档上的单击事件,然后处理
li上的单击事件。在
li
的单击事件中,使用该功能防止触发文档(父级)单击事件

$('#search_suggestions_list li').click(function() {
   var selectedString = $(this).text();
   $('#search-box').val(selectedString);
   setTimeout("$('#search_suggestions').fadeOut('fast');", 200);
})

$('#search-box').blur(function(){
    // do something else
});
$(document).click(function() {
  // Clicked outside the LI
});

$('#search_suggestions_list li').click(function(e) {
  var selectedString = $(this).text(); 
  $('#search-box').val(selectedString); 
  setTimeout("$('#search_suggestions').fadeOut('fast');", 200);

  e.stopPropagation(); // Stops document.click from firing
}) 

$(document).click()将始终在任何clickBy返回false时触发,您将停止冒泡,因此document.click函数将不会运行。我可能误解了这个问题,但听起来像是他在问什么。+1如果您添加
$(“#搜索建议列表”)。隐藏()
或文档单击事件中的类似内容,和/或清除显示搜索建议的超时。实际上,您需要
stopPropagation
而不是返回false。@Josh:
returnfalse
与调用
preventDefault
stopPropagation
$(document).click(function() {
  // Clicked outside the LI
});

$('#search_suggestions_list li').click(function(e) {
  var selectedString = $(this).text(); 
  $('#search-box').val(selectedString); 
  setTimeout("$('#search_suggestions').fadeOut('fast');", 200);

  e.stopPropagation(); // Stops document.click from firing
})