jQuery用一个按钮隐藏和取消隐藏div

时间:2011-12-20 10:13:38

标签: jquery syntax

if (p5goback = true)
    {
        $("#p5-6").fadeOut("slow");
        p5goback = false;   
    }
else    
    {
        $("#p5-6").fadeIn("slow");
        var p5goback = true;
    }

使用上面的代码我希望能够使用一个按钮来隐藏和取消隐藏div。

上面的代码似乎没有用,有什么想法吗?

我不相信HTML是必需的,但如果你想要一个jsfiddle留下评论。

干杯

3 个答案:

答案 0 :(得分:2)

您的条件是分配,而不是检查。使用==进行比较:

if(p5goback == true) { ... }

由于p5goback是布尔值,因此您可以完全忽略== true部分:

if(p5goback) { ... }

由于您总是将p5goback设置为它的反面,所以您可以简单地逃脱:

$('#p5-6').fadeToggle('slow');
p5goback = !p5goback;

请注意,如果{em>其他比任何 else 更改p5goback(或#p5-6可见性),则可能会引入意外行为(即,如果有任何情况, #p5-6可见性 p5goback布尔值更改的值

为了确保这两个变量之间的状态总是一致的,你可以写这样的东西,但是可读性会受到影响,你可能最好只使用这个条件:

$.fn[ p5goback ? 'fadeOut' : 'fadeIn' ].call($('#p5-6'), 'slow');
p5goback = !p5goback;

以上代码调用$.fn.fadeOut $.fn.fadeIn,具体取决于p5goback的值,然后将p5goback设置为反布尔值它的当前价值。

答案 1 :(得分:0)

假设您在要使用的button.onclick方法中。 您可以使用

代替fadeIn / fadeOut

$("#p5-6").toggle("slow");

您还需要更正if语句:if (p5goback == true)

答案 2 :(得分:0)

如果使用.fadeToggle()功能,那将会更漂亮;)

 $("#p5-6").fadeToggle("slow");