現在、アニメーションを実行し、アニメーションが終了したら他のコード ロジックを実行する showAuthorInfo という関数があります。
self.showAuthorInfo = function(){
var authorID = $authorLink.attr('data-author-id'); //PL-INT - determine what info needs be captured here
var isActive = $modalInfoWindow.hasClass('active');
self.$modalInfoWindow.animate({ 'bottom': '0px' },200,function(){
self.$modalInfoWindow.addClass('active');
self.loadAuthorInfo(authorID);
})
}
ただし、アニメーションが完了するたびにさまざまなコールバックを実行して、さまざまな関数呼び出しを介してこのモーダル ウィンドウを表示および非表示にしたいので、アニメーションを関数にラップしたいと思います。問題は、上記の関数を使用して、アニメーションが発生するカスタム関数を呼び出し、そのアニメーション関数がこの関数に値を返してから続行できるかどうかです。
関数を複数の関数に分割しますが、複雑になる可能性があるように感じます。特に、すべてのケースに適用されるとは限らない特定の関数固有のパラメーターを渡す必要があるためです (たとえば、上記のコードで、アニメーション関数を呼び出してから loadAuthorInfo 関数を呼び出すつもりでしたが、アニメーション関数は、showAuthorInfo によって呼び出される場合にのみ authorID を必要とする場合でも、loadAuthorInfo に渡すことができるように authorID を受け入れる必要があります)。
ここに何か推奨事項はありますか?
やりたくないことの例:
self.showAuthorInfo = function(){
var authorID = $authorLink.attr('data-author-id'); //PL-INT - determine what info needs be captured here
var callback = self.displayAuthorContent();
self.animateInfoWindow(authorID,callback);
}
self.animateInfoWindow = function(authorID,callback){
self.$modalInfoWindow.animate({ 'bottom': '0px' },200,function(){
//create conditional where if there's an authorID, pass it to the callback function, otherwise just call the callback function without parameters
})
}