将一串动画定义为变量

时间:2009-06-03 20:40:21

标签: jquery variables

是否可以将动画字符串定义为变量?

例如(这是我想的,但不起作用?):

var speed = 500;
var dothis = $("#div").slideUp('speed');
            $("#div").slideDown('speed');
            $("#div").animate({height: "0px"}, 'speed');
$("button").click(function () { 
      $(this).dothis();
    });

我不完全确定如何设置它。

2 个答案:

答案 0 :(得分:1)

看起来你正试图在以后执行一系列操作......在这种情况下,你可以将所有命令封装在一个函数中:

var dothis = function() {
    $("#div").slideUp('speed');
    $("#div").slideDown('speed');
    $("#div").animate({height: "0px"}, 'speed');
    $("button").click(function () { 
      $(this).dothis();
    });
}

然后,您可以通过调用函数立即执行所有命令:

dothis();

答案 1 :(得分:1)

您还可以通过为函数提供参数来扩展Daniel的函数以处理传递给它的任何元素。例如,传递元素或选择器:

var dothis = function(el) {
    $(el).slideUp('speed');
    [...]

此外,并不是将每个效果放在它自己的行上或将它们链接起来就像$(el).slideUp()。slideDown()。fade()等。

如果你把它们放在不同的行上,它们几乎会同时执行,而链接它们会使它们按顺序执行。