在key up上停止document.click功能

时间:2014-01-18 05:26:31

标签: javascript jquery

要隐藏div,请单击我使用的页面的其余部分

    $('#display').click(function(e){
        e.stopPropagation();
     });


  $(document).click(function(){

       $('#display').slideUp();

});

现在我想让函数document.click只在用户没有在id为“mse”的文本框中键入任何文本时才能工作。

      <input type="text" id="mse" name="search">

我试过这样:

      $(document).click(function(){
         if($( "#mse" ).keyup()){
             //do nothing
       }else{
        $('#display').slideUp();
       }
     });

但它不起作用。

帮我解决这个问题。

我的总代码是:

 $(document).ready(function(){
         $("#mse").keyup(function() 
        {
           var searchbox = $(this).val();
           var dataString = 'searchword='+ searchbox;
           if(searchbox=='')
             {}
           else
            {
             $.ajax({
                  type: "POST",
                  url: "search.jsp",
                  data: dataString,
                  cache: false,
                  success: function(html)
                  {

                   $("#smartscreen").html(html).show();
                   }
             });
         }return false; 
       });

       $('#mse').focus(function(){
             $('#display' ).css( "display", "block" );
       });

       $('#display').click(function(e){
              e.stopPropagation();
         });



        });

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

                $('#display').slideUp();



              });

1 个答案:

答案 0 :(得分:0)

您可能想要打开和关闭文档的点击事件。以下是其中的成分:

.on() with namespacing of the event

.off()

.focus().blur()

然后,根据您的需要,执行以下操作:当“mse”元素聚焦时,关闭文档的单击事件。当“mse”元素变得模糊时,重新打开文档的单击事件。 Example in this JS Fiddle

来自JS Fiddle的相关代码:

$('#mse').focus(function(){
    $(document).off('click.slider');
    $('#display').css('display', 'block');
});

$('#mse').blur(function(){
    $(document).on('click.slider', function(e){
        $('#display').slideUp();
    });
});