下記のようなコードがあります。
かんたんに言えば、3秒ごとに更新されるページがあります。
目的としている仕様は以下のとおりです。
qボタンを押すと、「準備しています」<div id="prep">ブロックがフェードインして、yahoo.co.jpに飛ぶようなページです。
解決したいことは、「準備しています」<div id="prep">ブロックが出ず、yahoo.co.jpに飛んでしまうのです。
どうやら、qwait関数の中でsetTimeoutが飛ばされてlocation.hrefが実行されてしまうようです。
setTimeoutが正常に実行されるように書き換えることは可能でしょうか?よろしくおねがいします。
clearTimeoutは、yahoo.co.jpへ飛ぶ準備をしている間に、location.reloadが起こらないようにするためにあります。
jquery
1$(function() { 2 var id = setTimeout("location.reload()", 3000); 3 $(document).on('keydown', function(e) { 4 if ((e.which || e.keyCode) == 81) {// q 5 qwait(); 6 } 7 }); 8}); 9 10function qwait() { 11 clearTimeout(id); 12 setTimeout(function() { 13 $('#prep').fadeIn(100); 14 }, 100); 15 location.href = 'yahoo.co.jp'; 16} 17 18
HTML
1 <div id="prep"> 2 <p>しばらくお待ち下さい…</p> 3 </div>
CSS
1#prep{ 2 z-index: 1; 3 width: 356px; 4 height: 159px; 5 position: fixed; 6 left: 50%; 7 top: 50%; 8 margin-left: -178px; 9 margin-top: 79px; 10 display: none; 11}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。