簡體   English   中英

jQuery功能完成后發出警報

[英]Alert After jQuery Function is Finished

我正在努力找出如何使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數據后不提供任何回調。 任何非駭客的解決方案都需要對庫本身進行一些修改。

這是您可以做到的快速方法

通過添加此行

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

success: function(data) {結束時success: function(data) {

那么您的代碼就是這樣:

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

這與您的上一個示例類似,只是將回調函數放入了插件期望的選項JSON中。

我不知道什么是“詞匯表”,但是您可能會找到jQuery api提供的Deferred對象的解決方案。 Deferred幫助處理json調用,尤其是.done()方法,以在調用結束時設置回音。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM