Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   clearInterval срабатывает только со второго раза (https://javascript.ru/forum/css-html-firefox-mizilla/52213-clearinterval-srabatyvaet-tolko-so-vtorogo-raza.html)

nikolayseo 08.12.2014 19:06

clearInterval срабатывает только со второго раза
 
Приветствую, всех!

Прошу помочь разобраться.


window.intervalID_1 = setInterval(function() {

    $("[data-sport-group='Баскетбол']").find("a").click();

    setTimeout(function() {
		window.parent = $(".live-today-member-name:contains('Россия')");
        parent.closest("table").find(".event-more-view").click();
    }, 3000);

    if ($(".expanded-hack:visible").size() > 0) {
		
        clearInterval(intervalID_1);  //закрываю интервал, но с первого раза не срабатывает, алерт выскакивает два раза и только потом интервал перестает отрабатывать!
    }

alert("Условие выполнено, закрываем интервал!");

}, 5000);



В чем может быть причина. Заранее спасибо!

krutoy 08.12.2014 19:15

window.intervalID_1 = setInterval(function() {
    alert("start interval")
    setTimeout(function() {
       alert("start timeout")
    }, 30);
 
    if (true) {
        clearInterval(intervalID_1);
    }
alert("done");
}, 50);

//  start interval
//  done
//  start timeout

В Вашем коде ошибки нет. Значит в первой фазе интервала условие if ($(".expanded-hack:visible").size() > 0) ложно

Aetae 08.12.2014 19:16

Ну значит то, что варварски вызывается через click() отрабатывает дольше пары секунд.

Deff 08.12.2014 19:25

Цитата:

Сообщение от nikolayseo (Сообщение 345552)
Приветствую, всех!

Прошу помочь разобраться.

В чем может быть причина. Заранее спасибо!

Ну первый раз алерт за счет того, что клик только через 3 сек после появления алерта, второй раз срабатывает - что выполнилось,


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