2013-04-04 76 views
0

我有以下代碼,它從左到右滑動一列,並推動右側的所有權到右側,然後再回來(有點像Facebook應用程序)。它在文檔準備工作上很好,但不能調整大小。調整大小後,它開始行爲奇怪。就好像它正在執行前面的功能,而不是在調整大小時註冊新功能。jquery點擊功能不重置在瀏覽器調整大小

function doMenu() { 

var $trigger = $(".icon-menu-2"); 
var $menu = $(".c_left"); 
var width = $(window).width(); 

if ((width < 870) && (width > 750)) { 
    var status = 'closed'; 

    $('.icon-list').on('click', function(event){ 
     if (status === 'closed'){ 
      $menu.animate({ 
       width: 0, 
       marginLeft: -200, 
       display: 'toggle' 
      }, 'fast'); 
      $(".content_right, .navbar").animate({ 
       marginRight: 0, 
       display: 'toggle' 
      }, 'fast'); 
      return status = 'open'; 

     } else if (status === 'open') { 
      $menu.animate({ 
       width: 200, 
       marginLeft: 0, 
       display: 'toggle' 
      }, 'fast'); 
      $(".content_right, .navbar").animate({ 
       marginRight: -120, 
       display: 'toggle' 
      }, 'fast'); 
      return status = 'closed'; 
     } 
    }); 
} 

if (width < 750) { 

    var status = 'closed'; 
    $('.icon-list').on('click', function(event){ 
     if (status === 'closed'){ 
      $menu.animate({ 
       width: 0, 
       marginLeft: -200, 
       display: 'toggle' 
      }, 'fast'); 
      $(".content_right, .navbar").animate({ 
       marginLeft: 0, 
       display: 'toggle' 
      }, 'fast'); 
      return status = 'open'; 

     } else if (status === 'open') { 
      $menu.animate({ 
       width: 200, 
       marginLeft: 0, 
       display: 'toggle' 
      }, 'fast'); 
      $(".content_right, .navbar").animate({ 
       marginLeft: 200, 
       display: 'toggle' 
      }, 'fast'); 
      return status = 'closed'; 
     } 
    });    

} 

} 
$(document).ready(doMenu); 
$(window).resize(doMenu); 

編輯 - 改變切換()到(「點擊」,函數(事件)的建議之下,但仍然有功能不調整大小正常工作同樣的問題

+0

那撥動的'版本()'在jQuery的1.7棄用,在1.9 – adeneo 2013-04-04 12:19:25

+0

好香港專業教育學院刪除試圖替換$ trigger.toggle(功能顯示(){使用$ TRIG ger.click(函數show(){但這不起作用。你能幫助我需要改變什麼嗎?非常感謝 – LeeTee 2013-04-04 12:54:26

+0

如果您使用的是jQuery 1.9或更新的版本,您需要創建自己的切換功能,因爲toggle()只會切換元素的可見性。點擊()另一方面也不會工作,因爲它沒有切換功能,只有一個回調可用。你需要使用click(),並用標誌或類似的東西創建一個切換函數。 – adeneo 2013-04-04 12:57:45

回答

1

代替。撥動你可以使用標誌。

var status = 'closed'; 
$('.foo').on('click', function(event){ 
    if (status === 'closed'){ 
     //... 
     return status = 'open'; 

    } else if (status === 'open') { 
     //.. 
     return status = 'closed'; 

    } 
}); 
相關問題