Javascript: открытие нового окна с интервалом в 3 секунды - PullRequest
0 голосов
/ 19 июля 2011

Это мой HTML-код:

 <!DOCTYPE html>
 <html lang="en">
 <head>
   <meta charset="utf-8">
   <title>Something</title>
 </head>
 <body>
   <a href="http://jquery.com/">Try Me!</a>
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script>
$("a").click(function(event){

for(id=0;id<=10;){
id++;
     setTimeout(function(){window.open("http://www.mysite.com/characterID="+id,"", "win1", "width=100,height=100,resizable");}, 3000);
   }
event.preventDefault();
});

   </script>
 </body>
 </html>

Когда я нажимаю «Попробуй меня!»через 3 секунды он открывает нужные мне окна.Но я хочу открыть первое окно, подождать 3 секунды, затем второе окно, подождать 3 секунды, затем третье окно.

Возможно ли это?

Спасибо.

Ответы [ 3 ]

1 голос
/ 19 июля 2011

Использовать setInterval вместо setTimeout

0 голосов
/ 19 июля 2011
$("a").click(function(event){
  for(id=0;id<=10;id++){
    var local_id = id;
    setTimeout(function() {
      window.open("http://www.mysite.com/characterID="+local_id,"", "win"+local_id, "width=100,height=100,resizable");
      }, 3000*id);
   }
   event.preventDefault();
});

Умножьте время ожидания на ваш идентификатор и откройте каждое окно через 3 секунды после следующего.

0 голосов
/ 19 июля 2011

Обратите внимание, как я умножаю время ожидания на количество итераций, в которых вы находитесь. Также обратите внимание на разницу в синтаксисе для цикла for:

$("a").click(function(event){
    for(i = 0; i< 10; i++)
        setTimeout(function(){window.open("http://www.mysite.com/characterID="+id,"", "win1", "width=100,height=100,resizable");}, 3000 * i);
    }
    event.preventDefault();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...