jQuery:将参数作为属性传递给animate方法

时间:2016-01-24 02:17:50

标签: javascript jquery

我对jQuery的问题是,当我使用争论dir时,动画不起作用,但是当我展示出类型leftright时(与dir完全相同的值{1}}通过)似乎很好。

function update(dir) {
    $('#label').animate({
        dir: '200px'
    }, 'slow');
}
$('#goLeft').click(function() {
    update('left');
});

1 个答案:

答案 0 :(得分:4)

您可以使用bracket notation将变量作为属性传递。

在这种情况下,您可以使用[dir]

function update(dir) {
    $('#label').animate({
        [dir]: '200px'
    }, 'slow');
}

基本示例:



function update(dir) {
    $('#animate').animate({
        [dir]: '100px'
    }, 'slow');
}
$('#go-left').click(function() {
    update('left');
});
$('#go-down').click(function() {
    update('top');
});

#animate { position: relative; }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="go-left">Go left</button>
<button id="go-down">Go down</button>
<div id="animate">Animate me</div>
&#13;
&#13;
&#13;