2013-02-07 91 views
0

嘿家伙,我知道存在.slideToggle()但我想稍后添加更多功能。为什么if/else语句总是执行if分支?

我不知道我在做什么错,滑动的作品,但我不能滑下来。

我可以不覆盖我的var吗?当有人能帮助我时会很好。

$(document).ready(function() { 

    var resizeValue = true; 
    $(".resizeSelect").click(function() { 
     if (resizeValue === true) { 
      $(".resize").slideUp(

      function() { 
       $('.parent').height($('.child').height('100')); 
      }); 
      var resizeValue = false; 
     } else { 
      $(".resize").slideDown(

      function() { 
       $('.parent').height($('.child').height('100')); 
      }); 
      var resizeValue = true 
     }; 
    }); 
}); 
+1

你试图把一些CONSOL /警报日志,看看那里的代码,挂起? – Dukeatcoding

回答

8

您不应该在click函数中重新定义resizeValue变量。只需从var resizeValue中删除var(它只能用于ready功能的顶部)。

+0

这指向这个关于在JS中传递引用的答案:http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-by-value-language – Alfabravo

+0

OMG ^^非常感谢。 – qudrat

6

因为你重新声明你的变量resizeValue在你的函数,而不是更新:

$(document).ready(function() { 

    var resizeValue = true; 
    $(".resizeSelect").click(function() { 
     if (resizeValue === true) { 
      $(".resize").slideUp(

      function() { 
       $('.parent').height($('.child').height('100')); 
      }); 
      //DO NOT DECLARE NEW VARIABLE WITH VAR 
      resizeValue = false; 
     } else { 
      $(".resize").slideDown(

      function() { 
       $('.parent').height($('.child').height('100')); 
      }); 
      //DO NOT DECLARE NEW VARIABLE WITH VAR 
      resizeValue = true 
     }; 
    }); 
}); 
+0

谢谢你的回答:) – qudrat