2015-09-15 142 views
0

我試過在.animate()中給出回調函數(FUNCTIONX),但它立即觸發 - 並且不等待動畫結束。動畫完成後運行函數

nav.click(function() { 
    holder.stop(true, true); 
    var target = $(this).attr('class'); 

    if (target === 'right') { 
     var value = current.width(); 
     holder.animate({ 
      right: '+=' + value 
     }, slideSpeed, FUNCTIONX()); 
     current = current.next(); 
    } else { 
     var value = current.prev().width(); 
     holder.animate({ 
      right: '-=' + value 
     }, slideSpeed, FUNCTIONX()); 
     current = current.prev(); 
    } 
}); 

還嘗試與.promise()(如下)具有相同的效果。

 var value = current.width(); 
     holder.animate({ 
      right: '+=' + value 
     }, slideSpeed); 
     current = current.next(); 
     nav.promise().done(function() { 
      alert('dupa'); 
     }); 

幻燈片效果結束後,該動畫完成後如何運行函數?

+0

取而代之的是:'nav.promise()來完成(功能...'做'holder.promise()來完成(功能...' – Michelangelo

回答

1

FUNCTIONX在這裏立即被調用。嘗試刪除()

來源:

holder.animate({ 
    right: '+=' + value 
}, slideSpeed, FUNCTIONX()); 

要:

holder.animate({ 
    right: '+=' + value 
}, slideSpeed, FUNCTIONX);