2013-04-04 77 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'; 

    } 
}); 
相关问题