Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.11.2012, 20:06
Интересующийся
Отправить личное сообщение для JavaScriptProgrammer Посмотреть профиль Найти все сообщения от JavaScriptProgrammer
 
Регистрация: 13.10.2012
Сообщений: 22

Почему моя функция "упрощённый вариант" не работает с другими DOM-элементами?
Работает только с одной span. Cо второй span не работает. Почему?
Переменные обнулял. Всё равно не рабоает.


<html>
<title></title>
<head>
<span id="span1"></span>
<span id="span2"></span>
</head>
<body>
<script src="script.js"></script>
<script>
printContent("span1", str);
printContent("span2", str);
//document.getElementById("span1").style.width = document.body.clientWidth;
</script>
</body>
</html>

var str = "Content1. Content1.Content1.Content1.Content1.Content1.";
var i = 0;
var l = str.length;
function printContent(span, string){
        id = window.setInterval(           
        function(){
        document.getElementById(span).innerHTML += string[i++];
        if(i == l){
              window.clearInterval(id);
              i = 0;
              l = 0;    
        }       
        },
        50                  
                   );
}

Последний раз редактировалось JavaScriptProgrammer, 07.11.2012 в 20:09.
Ответить с цитированием
  #2 (permalink)  
Старый 07.11.2012, 20:43
Интересующийся
Отправить личное сообщение для JavaScriptProgrammer Посмотреть профиль Найти все сообщения от JavaScriptProgrammer
 
Регистрация: 13.10.2012
Сообщений: 22

убрал l = 0;
работает только с span1, со span2 не работает.

Подскажите как исправить код, чтобы работала с любой span.
Ответить с цитированием
  #3 (permalink)  
Старый 07.11.2012, 23:10
Интересующийся
Отправить личное сообщение для JavaScriptProgrammer Посмотреть профиль Найти все сообщения от JavaScriptProgrammer
 
Регистрация: 13.10.2012
Сообщений: 22

Почему вызывая обе функции по очерёдно они работают одновременно. А они должны работать по очереди. Одна заканчивает работу, начинает работу вторая. Я же их вызваю по очереди, а они работают одновременно. Почему?


<html>
<title></title>
<head>
<span id="span1"></span>
<br></br>
<span id="span2"></span>
</head>
<body>
<script src="script.js"></script>
<script>
printContent("span1", str1);
printContent("span2", str2);
//document.getElementById("span1").style.width = document.body.clientWidth;
</script>
</body>
</html>


var str1 = "Text1";
var str2 = "Text2";

function printContent(id, string){
        
        var element = document.getElementById(id);        
        var counter = 0;
        var interval = window.setInterval(
                                             
        function(){      
          element.innerHTML += string[counter++];
     
          if(counter == string.length){
                window.clearInterval(interval); 
          }      
         
        },   
        50  
                           );        
}

Последний раз редактировалось JavaScriptProgrammer, 07.11.2012 в 23:12.
Ответить с цитированием
  #4 (permalink)  
Старый 08.11.2012, 04:29
Интересующийся
Отправить личное сообщение для JavaScriptProgrammer Посмотреть профиль Найти все сообщения от JavaScriptProgrammer
 
Регистрация: 13.10.2012
Сообщений: 22

как изменить код, чтобы setInterval работали так:
printContent 1 завершает свою работу.
только тогда printContent 2 начинает свою работу.
span2 начинает только после того как span1 закончила.
таймеры работают неодновременно, а по-очереди. но 2 таймер включается только тогда, когда первый выключился.
Ответить с цитированием
  #5 (permalink)  
Старый 08.11.2012, 04:40
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,589

Менять полностью структуру. Таймер один вообще один для небольших промежутков времени,а иначе работа таймеров непредсказуема. Точнее предсказуемо что работать не будет

Последний раз редактировалось dmitriymar, 08.11.2012 в 04:45.
Ответить с цитированием
  #6 (permalink)  
Старый 08.11.2012, 05:08
Интересующийся
Отправить личное сообщение для JavaScriptProgrammer Посмотреть профиль Найти все сообщения от JavaScriptProgrammer
 
Регистрация: 13.10.2012
Сообщений: 22

код плиз.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему моя функция не работает с другими DOM-элементами? JavaScriptProgrammer Events/DOM/Window 11 07.11.2012 19:10
Объясните, почему функция работает именно так. Имя Общие вопросы Javascript 36 04.09.2012 16:30
Почему не работает функция js? oliwin Общие вопросы Javascript 2 11.07.2010 12:16
Почему не работает функция? Vitaly jQuery 10 31.07.2009 16:01
Почему не работает JS с подгруженными в DOM элементами? V-z-z-HobboT jQuery 6 30.03.2009 13:02