2015-02-10 25 views
0

我是JS和jQuery的新手。最近我看中了jQuery。現在我有這個代碼如下片段:簡單的函數返回隊列中動畫的數量

$('#move').click(function(){ 
    $('#block').animate({ 
     'left' : '+=50px' 
    }, 500).this.call(this, get_fx()); 
}); 

function get_fx(){ 
    var store = console.log($(this).queue('fx').length); 
} 

什麼上面的代碼是應該做的是在按鈕的點擊,由50個像素移動DIV,然後調用函數get_fx()檢查連接動畫的數量到$('#block')

不知何故我的call()功能不起作用。我基本上想調用get_fx()函數$('#block'),顯然在get_fx()裏面這個是指向get_fx()所以我不得不用call()或者其他一些方法把get_fx()裏面的內容改成$('#block')

所以總結一下我的問題,我怎樣才能讓下面的工作:

this.call(this, get_fx()); 

編碼時我提到jQuery的文檔,但我的JS是不是太偉大了!我真的很感激任何幫助。

fiddle if it helps

謝謝。

Alexander。

回答

1

使用回調來做到這一點:

$('#move').click(function() { 
    $('#block').animate({ 
     'left': '+=50px' 
    }, 500, function() { 
     console.log($(this).queue().length); 
    }); 
}); 

jsFiddle

+0

我會投你了,但我; D最好想如果多數民衆贊成確定使用呼叫。不過謝謝。 – 2015-02-10 10:44:10

+1

@AlexanderSolonik歡迎您! – 2015-02-10 10:52:01