Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование setTimeout 
:(
    Опции темы
Michael.de
Дата 6.10.2008, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 22.3.2005
Где: Deutschland

Репутация: 4
Всего: 9



Newss: вот тебе пример использования setInterval() с моим предыдущим примером:
Код

<html>
<head>
<style type='text/css'>td{width:40px} th{text-align:left} button{width:40px}</style>
<script type="text/javascript">
function run(){
 var msg, txt, tmp, num, res, sol, i, sr=-1, tg=-1, err=false;
 txt=new Array('You can use only 0 - 9 and A - F','Please, select both number systems');
 msg=document.getElementById('msg').firstChild;
 msg.nodeValue='';
 tmp=document.getElementsByName('sr');
 for (i=0; i<tmp.length; i++) if (tmp[i].checked) {sr=parseInt(tmp[i].value); break;}
 tmp=document.getElementsByName('tg');
 for (i=0; i<tmp.length; i++) if (tmp[i].checked) {tg=parseInt(tmp[i].value); break;}
 num='0x'+document.getElementById('num').value.toUpperCase();
 if (sr<0||tg<0||isNaN(num)){
  if (sr<0||tg<0) msg.nodeValue=txt[1];
  else msg.nodeValue=txt[0];
  err=true;
 }
 else {
  for (i=2; i<num.length; i++){
   tmp=num.charCodeAt(i);
   if (tmp>47&&tmp<58&&tmp>47+sr || tmp>64&&tmp<71&&tmp>54+sr){
    if (sr<11) msg.nodeValue=txt[0].substr(0,21)+(sr-1);
    else if (sr==11) msg.nodeValue=txt[0].substr(0,28);
    else msg.nodeValue=txt[0].substr(0,31)+String.fromCharCode(54+sr);
    err=true;
    break;
   }
  }
 }
 if (!err){
  sol=document.getElementById('sol');
  sol.value=' Solution:\n\n';
  num=parseInt(num.substr(2), sr);
  tmp='', i=0;
  var repeat=window.setInterval(function(){
   i++;
   var r=num%tg;
   sol.value+=' step '+i+'. '+num+' / '+tg+' = '+Math.floor(num/tg)+' (remainder '+r+')\n';
   if (r>9) r=String.fromCharCode(55+r);
   tmp=r+tmp;
   num=Math.floor(num/tg);
   if (num<1){
    tmp=='' ? num=0 : num=tmp;
    msg.nodeValue='Your result: '+num;
    window.clearInterval(repeat);
   }
  }, 500);
 }
}
</script>
</head>
<body><br>
<table>
<tr><th colspan='15'>Select your original number system:</th></tr><tr>
<td><input type='radio' name='sr' value='2'>2</td>
<td><input type='radio' name='sr' value='3'>3</td>
<td><input type='radio' name='sr' value='4'>4</td>
<td><input type='radio' name='sr' value='5'>5</td>
<td><input type='radio' name='sr' value='6'>6</td>
<td><input type='radio' name='sr' value='7'>7</td>
<td><input type='radio' name='sr' value='8'>8</td>
<td><input type='radio' name='sr' value='9'>9</td>
<td><input type='radio' name='sr' value='10'>10</td>
<td><input type='radio' name='sr' value='11'>11</td>
<td><input type='radio' name='sr' value='12'>12</td>
<td><input type='radio' name='sr' value='13'>13</td>
<td><input type='radio' name='sr' value='14'>14</td>
<td><input type='radio' name='sr' value='15'>15</td>
<td><input type='radio' name='sr' value='16'>16</td></tr>
<tr><td colspan='15'>&nbsp;</td></tr>
<tr><th colspan='15'>Choose your target number system:</th></tr><tr>
<td><input type='radio' name='tg' value='2'>2</td>
<td><input type='radio' name='tg' value='3'>3</td>
<td><input type='radio' name='tg' value='4'>4</td>
<td><input type='radio' name='tg' value='5'>5</td>
<td><input type='radio' name='tg' value='6'>6</td>
<td><input type='radio' name='tg' value='7'>7</td>
<td><input type='radio' name='tg' value='8'>8</td>
<td><input type='radio' name='tg' value='9'>9</td>
<td><input type='radio' name='tg' value='10'>10</td>
<td><input type='radio' name='tg' value='11'>11</td>
<td><input type='radio' name='tg' value='12'>12</td>
<td><input type='radio' name='tg' value='13'>13</td>
<td><input type='radio' name='tg' value='14'>14</td>
<td><input type='radio' name='tg' value='15'>15</td>
<td><input type='radio' name='tg' value='16'>16</td></tr>
</table><br/>
<table>
<tr><th>Input your number</th><th><input id='num' type='text' maxlength='20' size='30'>
</th><th>and then click&nbsp;<button onclick='run();'>Ok</button></th>
<th id='msg' style='width:50%'>&nbsp;</th></tr><tr><th colspan='4'>&nbsp;</th></tr><tr><th colspan='4'>
<textarea readonly='readonly' rows='6' style='width:500px;border:1px dotted #AAAAFF' id='sol'>&nbsp;Solution:</textarea></th></tr>
</table>
</body>
</html>
Если ты 46ю строчку вырежешь и поставишь после 49й, то увидишь отличие и поймёшь как работает setInterval() (смотри на месседж после кн. "Ok")
P.S. Заменил в строчках 34 и 40 innerHTML на value, т.к. в IE глючит smile

Это сообщение отредактировал(а) Michael.de - 6.10.2008, 23:02
PM MAIL   Вверх
Newss
Дата 7.10.2008, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 3.10.2008

Репутация: нет
Всего: нет



Спасибо, попробую ещё раз setInterval помучитьsmile

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.