jQuery条件如果高度

时间:2013-10-01 15:43:09

标签: jquery

这个jquery函数工作正常,但我想介绍“if”。如果再次单击并且高度为40,则height = auto

$(document).ready(function() {
   $(".admintitle").click(function() {
        $(".1").animate({height:40});
        $('.admintitle').css('background-position', '0px 0px');
    });
 });

2 个答案:

答案 0 :(得分:2)

使用$(".1").width()$(".1").height()并将其与您的值进行比较。

$(document).ready(function() {
   $(".admintitle").click(function() {
        if ($(".1").width() === 40 && $(".1").height() === 140); {
            $(".1").animate({height:40});
            $('.admintitle').css('background-position', '0px 0px');
        }
    });
 });

答案 1 :(得分:1)

动画到auto高度不起作用,因为动画仅使用数值

$(document).ready(function () {
    var flag = false;
    $(".admintitle").click(function () {
        if (flag) {
            $(".1").height('auto');
        } else {
            $(".1").animate({
                height: 40
            });
        }
        $('.admintitle').css('background-position', flag ? '0px -20px' :  '0px 0px');
        flag = !flag;
    });
});

演示:Fiddle

另一种解决方案是使用计算高度,如果元素具有固定高度

$(document).ready(function () {
    var $1 = $(".1"),
        $title = $(".admintitle"),
        flag = false,
        height = $1.height();
    $title.click(function () {
        $1.animate({
            height: flag ? height : 40
        });
        $('.admintitle').css('background-position', flag ? '0px -20px' :  '0px 0px');
        flag = !flag;
    });
});

演示:Fiddle