jquery重置和设置变量

时间:2010-08-10 23:05:43

标签: jquery variables

我正在尝试创建具有可变“顶部”高度的slidingUp div,因此一个div可以滑动700px,而另一个(具有较少内容)slideUp仅400px。目前,divs所有slideUp都处于同一高度。 css中没有div高度声明。我的剧本:

$(document).ready(function(){          
            var oldHeight;  
    $('a.menubtn').click(function(){              
            var newHeight;
            if ($(this.id) == 'work') {
                  newHeight = 700;  
                  }
                  else { if ($(this.id) == 'services') {
                      newHeight = 400;
                  }
                  else { if ($(this.id) == 'about') {
                      newHeight = 400;
                  }
                  else {
                      newHeight = 300;
                  }
                  }
                  }

            if ($('.active').length > 0) {

                $('.active').removeClass('active').animate({'top': '+=' + oldHeight + 'px'}, '200');
                $('div#contents_'+ this.id).addClass('active').animate({'top': '-=' + newHeight + 'px'}, '200');
                oldHeight = newHeight;
                }
                else 
    $('div#contents_'+ this.id).addClass('active').animate({'top': '-=' + newHeight + 'px'}, '200');
                oldHeight = newHeight;
                }
    return(false);
    });               
})

TIA。

1 个答案:

答案 0 :(得分:2)

您的if陈述错误。

此:

$(this.id) == 'work'  // here you're comparing a jQuery object to 'work'

应该是:

this.id == 'work'     // here you're comparing the actual ID value to 'work'

如果您将if语句的结构更改为这样,那就更清晰了:

if (this.id == 'work') {
    newHeight = 700;  
} else if (this.id == 'services') {
    newHeight = 400;
} else if (this.id == 'about') {
    newHeight = 400;
} else {
    newHeight = 300;
}