2014-07-26 81 views
0

HTML:需要關閉下拉上點擊其他地方

<div id="contentTitle"> 
    <span class="btnShare"> 
    <a href="#">Share</a> 
    <ul> 
     <li><a href="#">Post to Facebook</a></li> 
     <li><a href="#">Email Link</a></li> 
     <li><a href="#">Copy Link</a></li> 
     <li><a href="#">Print</a></li> 
    </ul> 
    </span> 
</div> 

的Javascript:

$(document).ready(function(){ 
    var shnum = 0; 
    $('#contentTitle .btnShare a').click(function(){ 
     if(shnum==0) { 
      $('#contentTitle .btnShare ul').css('display','block'); 
      shnum = 1; 
     } 
     else { 
      $('#contentTitle .btnShare ul').css('display','none'); 
      shnum = 0; 
     } 
    }); 
}); 

上面的代碼,以顯示/隱藏下拉菜單中點擊共享錨標記時。我需要關閉下拉菜單,當用戶點擊其他位置時。上面的代碼不支持「$(」body「)。click」function。請幫忙。

+0

能否請你把你的代碼的jsfiddle? –

+1

@SumanBogati爲什麼不自己做? – Pietu1998

+0

如果沒有$(「body」),點擊就很難做到。您可以做的最好的不是使用點擊打開或關閉菜單,而是使用'onmouseover'打開或關閉菜單。 – orb

回答

0
$(document).ready(function(){ 
    var shnum = 0; 
    $('#contentTitle .btnShare a').click(function(){ 
     if(shnum==0) { 
     $('#contentTitle .btnShare ul').css('display','block'); 
     shnum = 1; 
    } 
     else { 
      $('#contentTitle .btnShare ul').css('display','none'); 
      shnum = 0; 
     } 
    }); 
    $('#contentTitle .btnShare a').blur(function(){ 
     $('#contentTitle .btnShare ul').css('display','none'); 
     shnum = 0; 
    }); 
}); 
+0

謝謝Salman。這是一個好主意。 –

0

這個代碼將做到這一點:

$(document).click(function(e){ 
    if (!$('#contentTitle .btnShare a').is(e.target) && !$('#contentTitle .btnShare ul').is(e.target) && $('#contentTitle .btnShare ul').has(e.target).length === 0){ 
     $('#contentTitle .btnShare ul').css('display','none'); 
     shnum = 0; 
     } 
}); 
相關問題