2013-10-15 87 views
0

在下面的代碼中,jQuery顯示和jQuery隱藏函數不起作用.. 雖然這是基本的東西,但我無法通過這個過去1小時.. 我無法隱藏並顯示div ... 請幫助jquery .show()和.hide()不起作用..!

<!DOCTYPE html> 
<html> 
<head> 
    <title>sample</title> 


    <script type="text/javascript" src="jquery-1.9.1.min.js"></script> 

    <script type="text/javascript"> 

      $(document).ready(function(){ 



      var fieldExample = $('#myTags'); 


      fieldExample.focus(function() { 
       var div = $('div#showDiv').show(); 
       $(document).bind('focusin#showDiv click#showDiv',function(e) { 
        if ($(e.target).closest('#showDiv, #myTags').length) return; 
        $(document).unbind('#showDiv'); 
        div.fadeOut('medium'); 
       }); 
      }); 
     $('div#showDiv').hide(); 

      }) 

    </script> 
</head> 
<body> 
<input id="myTags"/> 

    <div id="showDiv" style="height:200px;width:200px;background-color:red;"></div> 
</body> 
</html> 
+0

請解釋一下你正在努力實現用你的代碼是什麼。 –

+0

我正在調試這個小提琴,我真的不知道用綁定/解除綁定的中間東西的意圖是什麼。我認爲你有點過分複雜。 – MackieeE

+0

我想在輸入框的焦點上顯示一個div,我不想當div點擊裏面的div ..ie div應該是可見的時候div消失。我想在輸入時隱藏它不在焦點上,如果我點擊div外的光標。 –

回答

2

嘗試

$(document).ready(function() { 
    var $field = $('#myTags'), 
     $div = $('.showDiv').hide(); 

    $field.focus(function() { 
     $div.show(); 
    }); 
    $(document).on('focusin click', function (e) { 
     if ($(e.target).closest('.showDiv, #myTags').length) return; 
     $div.fadeOut('medium'); 
    }); 

}) 

演示:Fiddle

0

使用下面的代碼

<script type="text/javascript"> 

     $(document).ready(function(){ 



     var fieldExample = $('#myTags'); 


     fieldExample.focus(function() { 
      var div = $('div#showDiv'); 
      div.show(); //show div 
      $(document).on('focusin,click','#showDiv',function(e) { 
       if ($(this).closest(' #myTags').length) return; 

       $('#showDiv').off('focusin,click'); 
       div.fadeOut('medium'); 
      }); 
     }); 
    $('div#showDiv').hide(); 

     }) 

</script> 

參考on