私が抱えている問題を解決するために、SO に関する多くの例 ( this oneとthis oneを含む) を試しました。
以下のスクリプトを使用して、ユーザーがボタンをクリックした後にシステムがビジー処理中であることをユーザーに示すために、「回転する」画像を含むオーバーレイをページに追加しています。
ACME.global = ACME.global ? ACME.global : {
init: function() {
$(".ctaButton").bind("click", this.pageLoadingOverlay);
},
pageLoadingOverlay : function(event) {
var body = document.getElementsByTagName("body");
var pageOverlay = document.createElement("div");
pageOverlay.id = "onClickPageOverlay";
body[0].appendChild(pageOverlay);
setTimeout(function() {
$('#onClickPageOverlay').remove();
}, 1000);
}
}
タイムアウト機能を省略した場合
setTimeout(function() {
$('#onClickPageOverlay').remove();
}, 30000);
クリック イベントがボタンに適切にバインドされ、オーバーレイが読み込まれます。問題は、UI がオーバーレイ表示でスタックする可能性があることです (ページをレンダリングするシステムには「更新」または「戻る」ボタンがないため、ユーザーはページをリロードできません)。
ただし、完全なスクリプトを追加すると、onClick イベントがスクリプトにバインドされなくなったように見えます。
と のさまざまな組み合わせを試しましたが、うまくsetTimeout
いきdelay
ませんでした。
どんな助けでも大歓迎です。