2011-04-01 78 views
0
$('.edit').click(function() { 
    var anim = 0; 
    if(anim == 0){ 
     $('.foo_menu1').animate({ 
      bottom:"0px", 
      opacity: "1", 
      }, 600); 

     $('.foo_menu2').animate({ 
      bottom:"-47px", 
      opacity: "0", 
      }, 600); 

     anim += 1; 
    }else{ 
     $('.foo_menu1').animate({ 
      bottom:"-47px", 
      opacity: "0", 
      }, 600); 

     $('.foo_menu2').animate({ 
      bottom:"0px", 
      opacity: "1", 
      }, 600); 
      anim=0; 
    } 
    }); 
}) 

我是jQuery的新手。请帮我 我有一个按钮和两个div盒子。默认情况下会出现第一个div盒子(foo_menu1)。 ,同时点击按钮,第一个框会出现,第二个框应该消失。点击单个按钮的jquery动画功能

但是当我点击第一次它的工作良好达到第一个中频条件。 但如果我再次点击相同的btn,它不会进入else函数的内部。

+1

将'var anim = 0;'移到点击函数的外部。您正在重新设置anim以便每点击一次。 – mVChr 2011-04-01 10:47:31

回答

1

您需要将var anim = 0;移到外面并使其成为全局变量。

var anim = 0; 

$('.edit').click(function() { 
    if(anim == 0){ 
    // code 
    } else { 
    } 
}) 

否则,您将通过点击重新初始化它。

另外,我建议你看看jQuery的.data() API,如果你想存储有关元素的数据。这将避免范围内的全局变量。

http://api.jquery.com/jQuery.data/