jQuery函数完成后的警报

Alert After jQuery Function is Finished

本文关键字:函数 jQuery      更新时间:2023-09-26

我正在努力弄清楚如何让JS警报仅在上一个脚本(词汇表单词替换脚本)完成后出现。 让这个javascript/jquery按顺序运行让我头疼,因为它要么乱序,要么第二部分根本无法运行。

以下是当前在没有警报的情况下工作的代码:

<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="jquery.zglossary.min.js" type="text/javascript"></script>
<script>
$(document).ready(function () {
    $('body').glossary('listofwords.json');
    //want alert('finished') to happen after glossary word replacement is finished replacing words here
});
</script>
</head>

我已经尝试了很多不同的事情,试图在该评论所在的位置发生警报,并且警报在任何单词被 zglossary 脚本替换之前立即发生,例如:

<script>
$(document).ready(function () {
    $('body').glossary('listofwords.json');
    alert('finished');
});
</script>

或者脚本将替换所有单词,并且根本不会发生警报。 这方面的一个例子是:

<script>
$(document).ready(function () {
    $('body').glossary('listofwords.json');
}, function() {
    alert('finished');
});
</script>

我尝试过的另一个发生这种情况的例子(单词被替换,但没有发生警报)是:

<script>
$(document).ready(function () {
    $('body').glossary('listofwords.json', function() {alert('finished');} );
});
</script>

我真的想不通。 我将不胜感激任何帮助

我以前从未使用过这个词汇表插件 - 但我下载了源代码,我看到问题显然是因为词汇表插件在异步下载 JSON 数据后不提供任何回调。任何不 hacky 的解决方案都需要对库本身进行轻微修改。

这是一个快速的方法,你可以做到这一点

通过添加此行

typeof options.callback == 'function' && options.callback();

success: function(data) {结束时

那么你的代码就是这样:

<script>
$(document).ready(function () {
    $('body').glossary('listofwords.json', {callback:function() {alert('finished');}} );
});
</script>

这与上一个示例类似,只是它将回调放入插件所期望的选项 JSON 中。

我不知道

什么是"词汇表",但您可能会找到一个由jQuery api提供的延迟对象的解决方案。延迟有助于处理 json 调用,尤其是 .done() 方法,用于在调用完成时设置一个 caalback。