jQuery承诺在每个函数中使用()

fel*_*urg 6 each jquery function promise deferred

我试着调用自己的函数并等到它完成.转换结束后,我想开始下一个功能.请看看我的jsfiddle http://jsfiddle.net/hrm6w/

console.log("upper finished")应该在console.log("promise finished")之后启动,并且所有动画都已结束.

在每个对象的所有动画都结束后,我想开始下一个动作(函数).

我认为promise() - 函数是我所需要的,但我只是没有得到这个工作.

任何帮助,将不胜感激.

luc*_*uma 3

玩了一下之后,您似乎需要返回转换中的承诺。我稍微修改了一下,但得到了相同的结果。

\n\n

本文帮助解释了一些概念:http://hermanradtke.com/2011/05/12/managing-multiple-jquery-promises.html

\n\n

演示: http: //jsfiddle.net/lucuma/hrm6w/5/

\n\n
    (function($) {\n    //Transition Out\n    $.fn.ajaxTransitionOut = function() {\n\n        var $animators = $(\'.animate\', this);\n        $animators.each(function() {\n            $(this).animate({\n            left: 1000,\n            opacity: 0\n        }, 400);\n        console.log(\'animating\');\n                        });\n        return $animators.promise().done(function() {\n            console.log(\'promise finished\');\n        });\n\n    };\n\n})(jQuery);\n\n$(document).ready(function() {\n    console.log(\'starting\');\n    $.when($(\'#content\').ajaxTransitionOut()).done(function() {\n        console.log(\'upper finished\');\n    });\n    console.log(\'ending\');\n\n});\xe2\x80\x8b\n
Run Code Online (Sandbox Code Playgroud)\n