除非用户点击div,否则执行jquery命令

时间:2013-07-11 22:35:25

标签: javascript jquery ruby-on-rails

我有一个用户搜索栏,可以创建一个包含相关用户的div,并在您关注时消失。但是,如果我点击用户列表div,我不想关注。这有可能实现吗?

的application.js:

$(function() {
   $("#user_header_search_form input").focusout(function() {
      $('#header_user_list').html('');
   });
});

$( '#header_user_list')的html( '')。如果用户点击“#header_user_list”

,我不想运行此链接

1 个答案:

答案 0 :(得分:0)

替代方法可能是:

 $(document).click(function(event){

    var clicked = $(event.target);

    //if the clicked element is not son of the input or the list, clear the list.
    if(clicked.closest("#user_header_search_form input,#header_user_list").size() == 0)
    $('#header_user_list').html('');

 });

另一个选择是在清除列表之前设置延迟。如果用户必须从列表中只选择一个项目,这将起作用:

 $("#user_header_search_form input").focusout(function() {
     setTimeout(function(){
        $('#header_user_list').html('');
     },50);
 });

希望它有所帮助!