Показать сообщение отдельно
  #5 (permalink)  
Старый 15.11.2013, 18:42
Аватар для ixth
Профессор
Отправить личное сообщение для ixth Посмотреть профиль Найти все сообщения от ixth
 
Регистрация: 19.01.2010
Сообщений: 354

Как-то так, если я правильно понял.
Очень похоже на какой-то странный debouncing/throttling. Так зачем это?

function limited(time, func) {
    if (typeof time === 'function') {
        func = time;
        time = 20;
    }

    var newThis = this;
    var newArguments = arguments;
    var timeElapsed = true;

    return function () {
        if (timeElapsed) {
            timeElapsed = false;
            setTimeout(function () {
                timeElapsed = true; // сбрасываем по началу работы функции
                func.apply(newThis, newArguments);
            }, time);
        } else {
            newThis = this;
            newArguments = arguments;
        }
    }
}

Последний раз редактировалось ixth, 15.11.2013 в 18:47.
Ответить с цитированием