Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.12.2012, 07:32
Новичок на форуме
Отправить личное сообщение для demouser Посмотреть профиль Найти все сообщения от demouser
 
Регистрация: 11.12.2012
Сообщений: 4

Подскажите про setTimeout, while...
Народ, помогите разобраться с JS
<style>
  div {width:50px; height:50px; margin:5px;}
  .d1 {background-color:yellow;}
  .d2 {background-color:red;}
</style>

<div id="r1" class="d1" onclick="this.className = 'd2';"></div>
<div id="r2" class="d1" onclick="this.className = 'd2';"></div>
<div id="r3" class="d1" onclick="this.className = 'd2';"></div>
<div id="r4" class="d1" onclick="this.className = 'd2';"></div>

<script type="text/javascript">
    document.getElementById("r1").click();
    ////проверить если класс r1 = d2, продолжаем
    ////ждем 2 секунды
    document.getElementById("r2").click();
    ////проверить если класс r2 = d2, продолжаем
    ////ждем 2 секунды
    document.getElementById("r3").click();
    ////проверить если класс r3 = d2, продолжаем
    ////ждем 2 секунды
    document.getElementById("r4").click();
</script>


в реальном примере изменение класса происходит после аякс-запроса, поэтому происходит не сразу, и переходить к следующему клику нельзя пока этот класс не изменится
также нужна пауза в пару секунд

ps: с яваскриптом работаю впервые, основной язык c#
Ответить с цитированием
  #2 (permalink)  
Старый 11.12.2012, 08:40
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

<script>
function classEdit(){
    d1 = document.getElementsByClassName('d1')[0];
    if(d1){
        d1.className = 'd2';        
        setTimeout(classEdit, 2000);
    }
}


</script>

    <div id="r1" class="d1" onclick="classEdit()">d1</div>
    <div id="r2" class="d1">d2</div>
    <div id="r3" class="d1">d3</div>
    <div id="r4" class="d1">d4</div>
Ответить с цитированием
  #3 (permalink)  
Старый 12.12.2012, 03:46
Новичок на форуме
Отправить личное сообщение для demouser Посмотреть профиль Найти все сообщения от demouser
 
Регистрация: 11.12.2012
Сообщений: 4

Меня интересует каким образом можно приостановить работу скрипта до момента изменения класса, которое происходит через неизвестный промежуток времени
Ответить с цитированием
  #4 (permalink)  
Старый 12.12.2012, 05:21
Новичок на форуме
Отправить личное сообщение для demouser Посмотреть профиль Найти все сообщения от demouser
 
Регистрация: 11.12.2012
Сообщений: 4

Сделал пока через вложенные setInterval'ы, конструкция получилась не очень, но вроде работает. Если есть другие варианты предлагайте
Ответить с цитированием
  #5 (permalink)  
Старый 12.12.2012, 08:33
Аватар для ОлегА
Профессор
Отправить личное сообщение для ОлегА Посмотреть профиль Найти все сообщения от ОлегА
 
Регистрация: 25.08.2011
Сообщений: 420

Сообщение от demouser
Меня интересует каким образом можно приостановить работу скрипта до момента изменения класса
не понятно, на какое событие вы хотите сделать смену классов у этих элементов?
Ответить с цитированием
  #6 (permalink)  
Старый 12.12.2012, 16:22
Новичок на форуме
Отправить личное сообщение для demouser Посмотреть профиль Найти все сообщения от demouser
 
Регистрация: 11.12.2012
Сообщений: 4

Смена класов происходит произвольно в результате ассинхронного аякса, этот пример просто для тестов.
Я пишу расширение для браузера, для одной трекер системы
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подскажите как работает setTimeout ruslan368560 Общие вопросы Javascript 1 17.05.2011 18:48
Передача контекста через setTimeout decadent jQuery 3 10.02.2011 19:01
setTimeout в браузере IE и Opera leha66 Javascript под браузер 2 13.12.2010 13:02
Подскажите про Метод attachEvent() sanhai Events/DOM/Window 4 19.05.2010 14:47
опять про setTimeout AzriMan Общие вопросы Javascript 18 16.04.2009 22:28