Показать сообщение отдельно
  #4 (permalink)  
Старый 12.12.2013, 15:48
Профессор
Отправить личное сообщение для Faab Посмотреть профиль Найти все сообщения от Faab
 
Регистрация: 16.04.2012
Сообщений: 310

Да, к сожалению я не смог реализовать этот вариант. У меня явные проблемы в функциях и замыканиях, по крайней мере выходит ошибка на строке 45 Uncaught SyntaxError: Unexpected token ) :45:

<!DOCTYPE>
<html>
<head>
  <meta charset="UTF-8">
  <title>Interval</title>
  <style type="text/css">
    span{
     display: inline-block;
     width: 20px; 
     text-align: center;
    }
    .spanAvtive {
      border: 3px red solid;
    }
    .clearfix:after {
    	content: ".";
    	display: block;
    	clear: both;
    	visibility: hidden;
    	line-height: 0;
    	height: 0;
    }     
    .clearfix {
    	display: inline-block;
    }    
    html[xmlns] .clearfix {
    	display: block;
    }    
    * html .clearfix {
    	height: 1%;
    }
  </style>
  <script src="http://code.jquery.com/jquery-latest.min.js"></script>
  <script>
    function clearAllIntervals(){
      var lastID = 0;
    
      return function(){
        var currentID = setInterval(function(){}, 2000);
        for(var id = currentID; id > lastID; id--){
          clearInterval(id);
        };
        lastID = currentID;
      };
    } /* () */;

    function fTimerStart(eDiv, iIndexActive){ 
      eSpanSum = eDiv.querySelectorAll('span');
      var fSliderTimer = setInterval(function(){
        eSpanSum[iIndexActive].classList.remove('spanAvtive');
        if(iIndexActive == 9){
          iIndexActive = 0;
        }else{
          iIndexActive++;
        };
        eSpanSum[iIndexActive].classList.add('spanAvtive');
      }, 2000);
      $('.eButtonNext').click(function(){
        clearAllIntervals();
        eSpanSum[iIndexActive].classList.remove('spanAvtive');
        if(iIndexActive == 9){
          iIndexActive = 0;
        }else{
          iIndexActive++;
        };
        eSpanSum[iIndexActive].classList.add('spanAvtive');
        fTimerStart(eDiv, iIndexActive);
      });
      
    };
   
    window.onload = function(){
      var iIndexActive = 0;
      var eDiv = document.querySelectorAll('.b-container')[0];
      for(i=0;i<10;i++){
        var eSpan = document.createElement('span');
        if(i==0){
          eSpan.classList.add('spanAvtive');
        };
        var eTextNode = document.createTextNode(i);
        eDiv.appendChild(eSpan);
        eSpan.appendChild(eTextNode);
      };
      fTimerStart(eDiv, iIndexActive);
      
      
    };
  </script>
</head>
<body>

  <div class="b-container"></div>
  <div>
    <input type="button" value="next" class="eButtonNext" />
  </div>
  
</body>
</html>


Закомментировав скобки (я так понимаю они называются замыкание?) основная проблема не решилась.

Последний раз редактировалось Faab, 12.12.2013 в 15:54.
Ответить с цитированием