使用.fadeOut()多次返回函数而不是一次;

dvl*_*den 0 javascript jquery

我不知道是否有人这样做,但我想这是......

我一开始以为我的整个脚本可能有问题,我设法在localhost上创建新文件并测试fadeOut();功能.

显然它再次返回功能两次,所以我去了jsfiddle检查那里会发生什么.同样的事情发生了.在这种情况下console.log();返回两次.

  • 我做了什么,我想做什么?

好吧,我想返回指定的函数,或者在小提琴样本中,console.log();只指定一次.然而,我正在褪色多个元素(两个,确切地说).

有没有办法做到这一点,而不是同时将每个元素复制到fadeOut?

将返回console.log()的示例; 两次.

setTimeout(function () {

    $( ".one, .two" ).fadeOut(300, function () {
        console.log("Return Function!");
    });

}, 2000);
Run Code Online (Sandbox Code Playgroud)

将返回console.log()的示例; 一旦.

setTimeout(function () {

    $( ".one" ).fadeOut(300);

    $( ".two" ).fadeOut(300, function () {
        console.log("Return Function!");
    });

}, 2000);
Run Code Online (Sandbox Code Playgroud)

小提琴预览: 小提琴重定向

ade*_*neo 5

集合中有两个元素,因此fadeOut被调用两次,所以是的,它应该这样做.

通过使用动画中返回的promise和$.when,无论集合中的元素数量是多少,都可以只触发一次回调$.then

setTimeout(function () {

    $.when( $( ".one, .two" ).fadeOut(300) ).then(function () {
        console.log("Return Function!");
    });

}, 2000);
Run Code Online (Sandbox Code Playgroud)

小提琴