Сделайте тест цикла while все время - PullRequest
1 голос
/ 01 октября 2011

Я работаю над простым тестом, в котором используется цикл while.

Вот код:

var ishovered = 0;

$('a.hovertest').hover(function(){
    ishovered = 1;
},function(){
    ishovered = 0;
});

while(ishovered == 1)
    {
        //execute function
    }

Как мне сделать так, чтобы цикл while постоянно проверял и функция выполнялась, как только он зависает? (Да, я знаю, что могу поставить функцию в разделе при наведении курсора, я спрашиваю об этом по причине)

Хотя это не обязательно должен быть цикл, мне просто нужно, чтобы функция выполнялась, как только ishovered становится равным 1. Есть ли способ отслеживать это?

Вот пример: http://jsfiddle.net/9s3zE/

1 Ответ

2 голосов
/ 01 октября 2011

Скрипка: http://jsfiddle.net/9s3zE/1/

Используйте setInterval для этой цели. Кстати, вы описываете поведение «поллера». Поллер проверяет, является ли условие истинным. Если true, функция активирована. Если false, поведение по умолчанию (возможно, ничего) происходит. Для этого случая нецелесообразно использовать цикл while, потому что браузер остановится, когда условие будет выполнено.

var ishovered = 0;
$('a.hovertest').hover(function(){
    ishovered = 1;
},function(){
    ishovered = 0;
});

var showresult = $('#showresult');
window.setInterval(function(){
    if(ishovered == 1){
        showresult.text("You hovered");
    }
    else if(showresult.text() == "You hovered"){
        showresult.text("Default text (not hovered)");
    }
}, 100);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...