DOJOでイベントが完了するまで、何らかの方法ですべてのイベントを無効にすることができますか?例えば、要素が消えてしまったため、ユーザーはイベントを再度クリックすることができ、最後のイベントは完了しません。DOJOでイベントが実行されている間にイベントが発生しないようにするにはどうすればいいですか?
おかげ
DOJOでイベントが完了するまで、何らかの方法ですべてのイベントを無効にすることができますか?例えば、要素が消えてしまったため、ユーザーはイベントを再度クリックすることができ、最後のイベントは完了しません。DOJOでイベントが実行されている間にイベントが発生しないようにするにはどうすればいいですか?
おかげ
無効にする必要があるすべてのイベントを制御する場合は、グローバル変数を「ロック」として使用することができます。アニメーション(およびこのフラグがトリガーされた場合はすべてのイベントを中止します)を終了し、終了するとその設定を解除します。
Javascriptはではありません(タイミングの問題や「実際の」ロックを心配する必要はありませんが)フェーディングではシーンの背後でsetTimeoutを使用することがあります。 。このような場合は、ちょうどあなたがアニメーションが
var lock = false;
function my_event_handler(evt){
if(lock) return; //someone else is using the lock;
//perhaps cancel event propagation as well?
lock = true;
dojo.anim({
...
onEnd: function(){
lock = false;
}
});
}
オーバーの警告であるとき、適切に検出するために、onEndコールバックを使用する必要がありますことを忘れないでください:これは私の頭の上から擬似コードです。私はしばらくのうちにdojoのアニメーションを使用していない場合は、すでに気づいていない:P
私は私はあなたがここでのイベントで何を意味するのか理解していないが、あなたはページの要素との相互作用を防止したい場合、あなたはモーダルシールドを設置することができます...基本的に透明DIV要素を使ってコンテンツを高いZインデックスで配置する
こんにちはこれは私が感謝したことです。 – Darren