2011-03-17 111 views
0

第一個顯示的DIV的幫助,第二個隱藏下潛上點擊其他地方在文檔中。我遇到的問題是,當我點擊按鈕來顯示div時,它也算作文檔點擊,因此它隱藏了div。我如何能使其難以掩飾的DIV當我點擊顯示在div我需要這兩個功能

<script type="text/javascript"> 
    function test22(){ 

     var links = document.getElementById('links_safari'); 
     if(links.style.display == "none"){ 

      document.getElementById('links_safari').style.display=""; 
      var content = $('#links_safari').html();    
      var words = content.split(',');    
      for (var i = 2; i < words.length; i += 3) { 
       words[i] += '<br>'; 
      } 
      content = words.join(' '); 
      $('#links_safari').html(content); 

      $('#links_safari').css("margin-top", -322); 
      $('#links_safari').css("margin-left", 180); 
      safariPopupStatus++; 
     } 
     else{ 
      links.style.display="none"; 

     } 
    } 



</script> 

<script type="text/javascript"> 
    $(function(){ 

     $(document).click(

      function (e){ 
       var links = document.getElementById('links_safari'); 

       links.style.display="none"; 
       } 
     ) 
    }) 
</script> 

回答

2

讓想你的按鈕的id是showBtn現在的代碼將

$(document).click(

      function (e){ 
       if($(e.target).attr('id')=='showBtn') return 

       var links = document.getElementById('links_safari'); 
       if(links.style.display != "none") // why not check here ? 
        links.style.display="none"; 

       } 
     ) 
+0

輝煌顯示器!謝謝 – code511788465541441 2011-03-17 13:31:25

+0

@ user521180我很高興這有助於 – 2011-03-17 14:08:44

0

有一個簡單的檢查你的「點擊」功能:

<script type="text/javascript"> 
    $(function(){ 

     $(document).click(

      function (e){ 
       var links = document.getElementById('links_safari'); 
       if(links.style.display != "none") // why not check here ? 
        links.style.display="none"; 
       else 
        links.style.display=""; 

       } 
     ) 
    }) 
</script> 
+0

這不會工作,因爲當我點擊「顯示格」與是不是沒有這樣的腳本將使它沒有 – code511788465541441 2011-03-17 13:26:26

0

爲您的按鈕,單獨的點擊處理程序。它應該看起來像:

$("#buttonID").click(function(e) { 
    test22(); // to show 
    e.stopPropegation(); 
}); 

stopPropegation將保留事件冒泡到文檔的水平,防止處理程序被調用那裏。

可以,也或許應該把從test22()展會代碼到您的按鈕處理程序,並在文檔處理程序只是處理藏匿。