2009-06-03 82 views
0

是否可以將一串動畫定義爲變量?將一串動畫定義爲變量

例如(這是我的想法,但不工作?):

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

我不完全知道如何設置它。

回答

1

它看起來像你想在以後的時間來執行一系列的動作......在這種情況下,你可以封裝在一個函數的所有命令:

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

再後來,你可以通過調用該函數一次執行所有命令:

dothis(); 
+0

是啊!這很棒!謝謝,丹尼爾。 – 2009-06-03 20:56:37

1

您還可以通過給函數一個參數來擴展Daniel的函數以處理傳遞給它的任何元素。例如,傳遞一個元素或選擇:

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

而且,不是說有把每個效果在它自己的行或鏈接他們像$(EL).slideUp()之間的差異了slideDown()。淡入淡出()等

如果你把它們放在不同的行上,它們將幾乎同時執行,而鏈接它們將它們排隊以便按順序執行。