javascript - 是否允许 JS 嵌套回调?

标签 javascript jquery

我正在尝试为 JS 回调运行一个 w3schools 示例,它在第一个回调中运行正常并显示“该段落现在已隐藏正常”,但不是第二个警报,我做错了什么?还是不允许嵌套回调?

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){    
        $("p").hide("slow", function(){        
            alert("The paragraph is now hidden OK", function(){            
                 alert("2nd alert FAIL");
            });
        });
    });
});

</script>
</head>
<body>

<button>Hide</button>

<p>This is a paragraph with little content.</p>

</body>
</html>

编辑 1:
我需要做什么才能支持我的自定义函数回调?
编辑 2
已解决,只支持一个函数回调:

​// A function that takes two parameters, the last one a callback function​
​function getInput (options, callback) {
    allUserData.push (options);
    callback (options);
​
}

最佳答案

alert不提供回调。 alert 是 1990 年代的错误,它会在显示警报时使浏览器的主要 JavaScript 线程突然停止,因此在这种特殊情况下,只需将您当前拥有的代码放在 after< 的回调中/em> 警报。 (或者更好:不要使用 alert。:-))alert(以及 promptconfirm)是整体“不要阻塞线程”规则的不合时宜的异常(exception)。

没有理由其他同样嵌套的回调不起作用。他们确实这样做了:

$(document).ready(function(){
    $("button").click(function(){    
        $("p").hide("slow", function(){        
            alert("The paragraph is now hidden OK");
            alert("2nd alert FAIL");
        });
    });
});
<button>Hide</button>
<p>This is a paragraph with little content.</p>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

关于javascript - 是否允许 JS 嵌套回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47577721/

相关文章:

php - 使用javascript检查MySql中的用户验证

jquery - 淡出当前元素并淡入具有相同类的同级元素

javascript - 如何检查它是字符串还是json

javascript - 单击其元素时,我的汉堡菜单消失了

javascript - 使用backbone、underscore、jquery、bootstrap等的Web应用程序

javascript - 如何使用 jquery 将值列表发送到 php

javascript - Cypress:获取新的重新加载的元素

javascript - 如何从长字符串中提取数字

jquery - 插件默认隐藏元素,无法弄清楚如何不

javascript - i++ JavaScript 函数的动画