2012-01-22 109 views
0

因此,我有一些下拉菜單,我傾聽touchstart事件以顯示它們,但問題是我不知道什麼時候關閉它們,因爲我在頁面上有2個下拉菜單問題是..如果用戶點擊下拉菜單,我顯示它,然後點擊另一個...顯示。iPhone上的下拉菜單

$(document).ready(function() { 
    $('nav ul li.sub-menu > a,nav ul li.sub-menu2 > a').bind("touchstart",function(){ 
     $(this).parent().find('ul').toggle(); 
     $(this).parent().addClass('active_page'); 
    }); 
}); 

任何想法如何關閉它,什麼時候最好關閉它? : - ?

+1

處理觸摸就像點擊 - 如果用戶點擊菜單項,打開它。如果他們點擊另一個菜單,請關閉打開的菜單並打開第二個菜單。 – RobG

+0

我應該怎麼做?你可以給一段代碼片斷嗎? – Uffo

回答

0

解決方案是添加絕對位置的覆蓋div。

$(document).ready(function() { 

    $('nav ul li.sub-menu > a,nav ul li.sub-menu2 > a').click(function(){ 
     $(this).parent().find('ul').toggle(); 
     $('body').prepend('<div class="overlay" />'); 
     $('.overlay').css({'width' : $('body').css('width'), 'height' : $('body').css('height')}); 
     $(this).parent().addClass('active_page'); 

     return false; 
    }); 


    $('.overlay').live('touchstart',function(){ 
     $(this).remove(); 
     $('.drop').each(function(){ 
      if($(this).find('ul').css('display') == 'block') 
      { 
       $(this).find('ul').toggle(); 
      } 
     }); 
     //$('nav ul li.sub-menu2 > ul,nav ul li.sub-menu > ul').toggle(); 

     return false; 
    }); 

});