我正在尝试为 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
(以及 prompt
和 confirm
)是整体“不要阻塞线程”规则的不合时宜的异常(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/