<button onclick="$.MyObject.add('wrapper');">Add</button>
某處在我做的代碼:爲什麼在動畫完成之前調用jQuery的完整函數?
$.MyObject= new MyUberObject();
然後在我添加功能,指定我回電話,並調用動畫和我的回調傳遞給它。
function MyUberObject(data) {
...
this.add = function(name, index) {
var callback = function(n,i) {
$.MyObject.addDiv(n, i);
alert("wtf");
}(name, index);
$("#outerWrapper").animate(
{
"width": "+=200px",
},
{
duration : "fast",
easing: "linear",
complete: callback
}
);
...
}
然而,警報立即只要按下按鈕上來,那麼一旦我清除警報,動畫會去...我已經試過指定回調的許多不同的方式,以及嘗試使用延遲,並在其他地方打電話...仍然沒有去。
我在我的js調試中也使用alert(「wtf」)!只是不要忘記在發射之前把它拿出來......可能會讓人感到尷尬。 :) – evasilchenko 2012-03-09 17:18:20
哈。你是對的需要使用閉包,但看到我的迴應,你很接近。 - 編輯,雖然我猜你並不需要關閉,但我認爲它是在一個循環內運行的。 – thescientist 2012-03-09 17:21:49