Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Из-за цикла не работает анимация (https://javascript.ru/forum/misc/19455-iz-za-cikla-ne-rabotaet-animaciya.html)

Isaac 04.08.2011 21:08

Цитата:

Сообщение от dmitriymar (Сообщение 117323)
нет не правильно. сначала закрывается скобка тело функции) ,затем её вызов().

Все равно не работает :(

dmitriymar 04.08.2011 21:12

Цитата:

Сообщение от Isaac
if(distance == 260)
speed = 0;

эта запись или в одну строчку или в фигурных скобках возможно и так работает не знаю,но это плохой тон

dmitriymar 04.08.2011 21:16

Цитата:

Сообщение от Isaac
16 setTimeout(animate, 1500);

а чего ей работать ?animate у тебя есть?:)

Isaac 04.08.2011 21:19

Цитата:

Сообщение от dmitriymar (Сообщение 117328)
а чего ей работать ?animate у тебя есть?:)

Точно, спасибо! А как же тогда запустить ф-ю ?

dmitriymar 04.08.2011 21:29

посмотри свой вчерашний вопрос-там тебе кинул вариант с одним таймером и дальше
http://shamansir.github.com/JavaScri...other.timeouts

Isaac 04.08.2011 21:37

Спасибо!

monolithed 04.08.2011 21:43

Цитата:

Сообщение от dmitriymar
li = document.getElementById("lists-r1").children чего это такое?

Три наиболее часто используемых подхода, какой выберешь в конкретной ситуации?

<div id="div">
    <p></p>
    <p></p>
</div>

<script>
var p = document.getElementById('div').getElementsByTagName('p'),
    i = p.length;

while(i--) {
    p[i].innerHTML = p[i].nodeName;
}
</script>

<div id="div">
    <p></p>
    <p></p>
</div>

<script>
var p = document.getElementById('div').children,
    i = p.length;

while(i--) {
    p[i].innerHTML = p[i].nodeName;
}
</script>

<div id="div">
    <p></p>
    <p></p>
</div>

<script>
var p = document.getElementById('div').childNodes,
    i = p.length;

while(i--) {
    if(p[i].nodeName === 'P' && p[i].nodeType === 1)
       p[i].innerHTML = p[i].nodeName;
}
</script>


Цитата:

Сообщение от dmitriymar
нет не правильно. сначала закрывается скобка тело функции) ,затем её вызов().

Ты сегодня не пил? :)

//в этом случае сперва происходит группировка, затем вызов, как Function Expression
(function() {
   alert(this);
})();

//сперва происходит объявление функции как Function Expression и вызов, затем закрывается оператор группировки
(function() {
   alert(this); 
}()); 

//объявление функции как Function Expression и вызов, оператор группировки в этом случае не нужен
!function() {
   alert(this);
}();


Цитата:

Сообщение от dmitriymar
эта запись или в одну строчку или в фигурных скобках возможно и так работает не знаю,но это плохой тон

ничего подобного, если это касается конкретного примера.

// как в  Python
if(0 == 1)
   alert(false)
else if(1 == 2) 
      alert(false)
else 
  alert('не то не другое не верно');


//так советует Д. Крокфорд
if(0 == 1) {
   alert(false)
}

else if(1 == 2) {
      alert(false)
}

else {
  alert('не то не другое не верно');
}

// менее читабелен, но все же рабочий
if(0 == 1) alert(false); else if(1 == 2); else  alert('не то не другое не верно');

// тоже самое, что и передыдущий
if(0 == 1) alert(false);
else if(1 == 2);
else  alert('не то не другое не верно');

//из всех вариантов, лично я выберу этот
alert(0 == 1 ? 0 : 1 == 2 ? 0 : 'не то не другое не верно');


ты наверно не поверишь, но даже так работает:

<div id="div">
    <p></p>
    <p></p>
</div>

<script>
var
    
    p
    
    =
    
    document
    
    .
    
    getElementById
    
    (
        
        'div'
        
    )
    
    .
    
    childNodes
    ,
    
    i
    
    =
    
    p
    
    .
    
    length
    
    ;

while
    
    (
        
        i--
        
    )
    
{
    
    if
        
        (
            
            p
            
            [
                
                i
                
            ]
            
       .
            
            nodeName
            
            ===
            
            'P'
            
       &&
            
            p
            
            [
                
           i
                
       ]
            
       
       .
            
            nodeType
            
            ===
            
            1
            
        )
        
        alert
            
        (
            
            p
            
            [
                
                i
                
            ]
            
          .
            
            nodeName
            
        )
            
}

;
</script>




Как говорится, вкус и цвет, товарищей нет, главное незагнаться ;)

dmitriymar 04.08.2011 22:07

1 -о двух вариантах знал, об этом не знал(до того как написать-в гугл забил эту конструкцию -выдача нулевая-фильтры чтоли...нашел только на 5 странице выдачи )
2 -везде встречал только первый вариант -об остальных не знал:thanks:
3 о первом варианте недавно читал что воспримет как разные не связанные строки(такой записью не пользуюсь-поэтому там написал что не знаю но это дурной тон оформления)

dmitriymar 04.08.2011 22:08

monolithed,
по второму пункту -есть какаято существенная разница между ними?

dmitriymar 04.08.2011 22:10

Цитата:

Сообщение от monolithed
Ты сегодня не пил?

я сегодня и не спал:D


Часовой пояс GMT +3, время: 08:48.