为什么这些Javascript函数产生不同的结果?

时间:2011-11-09 09:36:34

标签: javascript jquery function animation

我有一个功能:

var myAnimation = function(){
    $(".next_action").css({'bottom':"-100%","left":"0"}).animate({'bottom':"0"},1000);
    $('.active').animate({'top':"-100%"},1000);
}

使两个对象动画化,产生滑动效果。

为了获得多方向支持,我将位置封装在参数中:

 var myAnimation = function(inE,outE){
        $(".next_action").css({inE:"-100%","left":"0"}).animate({inE:"0"},1000);
        $('.active').animate({outE:"-100%"},1000);
    }

我现在可以这样称呼:

myAnimation('bottom','top');

就我而言,这些功能应该是公平的,但第一部分是有效的,第二部则不是。根本没有动画,新对象简单地跳到了位置。

1 个答案:

答案 0 :(得分:7)

{inE:"-100%","left":"0"}使用键inE和键left创建一个对象。您需要在JavaScript中包含带引号的键的唯一时间是它是保留字(ifelse等),还是包含控制字符(-,{{1} },:)。

相反,你需要这样的东西;

{

使用square bracket notation设置对象的属性