编写回调函数

Ric*_*haw 7 javascript jquery callback javascript-events

我正在使用jQuery来编写这样的东西:

    $('#current_image').fadeOut(function(){
        $('#current_image').attr('src',newImage).show();
    });
Run Code Online (Sandbox Code Playgroud)

这很可爱,一旦fadeOut完成,嵌套位就会执行.

我想在这里创建自己的函数来取代fadeOut.我的函数会是什么样的,这样代码才有用?

    $('#current_image').customFadeOut(function(){
        $('#current_image').attr('src',newImage).show();
    });
Run Code Online (Sandbox Code Playgroud)

med*_*iev 3

关键是将函数引用传递给您定义的原型方法,并将传递的函数绑定到$.animate您在其中内部使用的任何 jquery 动画函数。

\n\n

HTML:

\n\n
<div id="blah" style="color:#fff; opacity:1; background:black; height:50px; position:relative; ">fsdljfdsjfds</div>\n<a id="click" href="#">fjsd</a>\n
Run Code Online (Sandbox Code Playgroud)\n\n

JS:

\n\n
$.fn.customFadeOut = function (callback) {\n    return $(this).animate({\n        opacity: 0.25,\n        fontSize: "3em",\n        height: \'toggle\'\n    }, 5000, function () {\n        callback.apply(this)\n    });\n\n}\n\n$(\'#click\').click(function () {\n    $(\'#blah\').customFadeOut(function () {\n        alert(\'hi\')\n\n    })\n\n})\xe2\x80\x8b\n
Run Code Online (Sandbox Code Playgroud)\n\n

现场演示

\n