2016-04-18 3 views
0

Я хочу регистрировать ролики, но каждый раз, когда я запускаю этот код, я получаю значения каждую секунду (или часто, как это задано в интервале). Я хочу, чтобы я мог принимать журнал всякий раз, когда значение меняется, а не получать его каждую секунду.Запуск функции при каждом изменении значения Javascript

var red, black; 

function mainOnRed() { 
    switch (checkMainOnRed()) { 
     case "red": 
      console.log("Black"); 
      break; 
     case "black": 
      console.log("Red"); 
      break; 
    } 
}; 


function checkMainOnRed() { 
    if (currentColor == "black" && rowSet.length == 2) { 
     return "red"; 
    } else { 
     return "black"; 
    } 
} 

setInterval(mainOnRed, 1000); 

Значения:

currentColor 

и

rowSet 

определены в других частях сценария.

ответ

0

Я хотел бы сделать что-то вроде этого:

var red, black, lastColor; 

function mainOnRed() { 
    var color = checkMainOnRed(); 
    if (color != lastColor) { 
     console.log(color); 
     lastColor = color; 
    }; 
}; 


function checkMainOnRed() { 
    if (currentColor == "black" && rowSet.length == 2) { 
     return "red"; 
    } else { 
     return "black"; 
    } 
} 

setInterval(mainOnRed, 1000); 
+0

Я получаю общую идею. Хотя ваш код не работает плохо, старайтесь делать то, что думает – Klajdi

+0

Nvm, я думал изменить значение на вхождение на текущее значение, а затем проверить, соответствуют ли значения или нет, а если нет, проверьте текущее значение и измените его. Но ваш код сделал трюк, все, что вам нужно, - запустить 'checkMainOnRed' на' mainOnRed', чтобы он также проверял значение. 'function mainOnRed() { checkMainOnRed();' Он работает некоторое время и работает нормально, и я адаптировал его к значению, а не к набору значений (используя 'String' и' html() '(а при необходимости' slice() ') вместо использования функции в' color', если кто-то ищет изменения в символах. – Klajdi

+0

Я рад, что помог :) – vasekhlav

0

Все зависит от того, установлен ли currentColor.

Если оно установлено в событии, вы можете просто позвонить mainOnRed для каждого события, которое изменит это значение переменной.

+0

первый основан на 'первой строки = ($ ("класс"). Ломтика (0) .html().) И' если (первый > = 0 && first <= 100) { \t currentColor = "red"; } else { \t currentColor = "black"; } ' – Klajdi

+0

@Klajdi, вы можете увидеть ответы здесь: http://stackoverflow.com/q/1759987/6220751 – Tuvia

Смежные вопросы