Запустить функцию сразу после изменения ввода

Возможный дубликат:
начальная загрузка -typeahead.js добавить прослушиватель для выбранного события

Я использую функцию опережения ввода в Twitter Bootstrap и хочу использовать .on('change', function(){...}), но моя проблема в том, что событие срабатывает до того, как значение ввода фактически изменится на выбранное, и когда функция вызывается, $(this).val() внутри функции возвращается значение, которое было до изменения. Событие срабатывает дважды, но должно происходить только второе.

Мне нужен способ запустить функцию таким образом, чтобы она возвращала выбранное значение и запускалась только один раз.

jsFiddle


person SeinopSys    schedule 31.12.2012    source источник


Ответы (3)


Используйте свойство обновления:

http://jsfiddle.net/ZUhFy/10/

.typeahead({
        source: namelist,
        updater: function(item) {
            $('#log').append(item + '<br>');
            return item;
        }
    });

средство обновления возвращает выбранный элемент Метод, используемый для возврата выбранного элемента. Принимает один аргумент, элемент и имеет область действия экземпляра typeahead. http://twitter.github.com/bootstrap/javascript.html#typeahead

person aquinas    schedule 31.12.2012
comment
Потрясающий! Наверное, я не понял эту часть документации должным образом... - person SeinopSys; 31.12.2012

пытаться

$('#findname').on('keyup', function() {...});
person algorhythm    schedule 31.12.2012

Попробуйте использовать keyup

.on('keyup', function(){...})
person Praveen Kumar Purushothaman    schedule 31.12.2012
comment
Keyup не будет работать, так как я хочу запускать функцию только тогда, когда пользователи решают, что они выбирают. Это будет срабатывать каждый раз, когда они что-то печатают. - person SeinopSys; 31.12.2012