2014-05-05 3 views
0

Я хочу, чтобы значение было одушевлено, но с функцией, которую я использую, прошлое значение нужно где-то хранить (не знаю где)JavaScript/jQuery - введите исходное значение в первый раз и предыдущее значение во второй раз при изменении

HTML

<input type="text" id="text" value="100"> 
<h1>My value: <span id="text-output">100</span> 

JS

$input = $('#text'); 
    $input.on('change', function(){ 
     var val = $(this).val(); 
     var memoryValue = 1; //I need this to be original value first time and previous value second times 

     animateNumber($('#text-output'), memoryValue, val, 300); 

    }) 

Fiddle: http://jsfiddle.net/v5Sa7/

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

Любые идеи?

+0

Вам нужно использовать глобальную переменную. – pmandell

+0

@pmandell hm ... звучит хорошо, но как? –

ответ

3

Вы можете назначить атрибут данных для элемента. jQuery.data()

$input = $('#text'); 
$this.data("previousVal", 100); //Initialize the data attribute to 100 
$input.on('change', function(){ 
    var $this = $(this); 
    var val = $this.val(); 
    var memoryValue = $this.data("previousVal"); 
    $this.data("previousVal", val); 
    animateNumber($('#text-output'), memoryValue, val, 300); 
}) 
+0

Я использовал ваш код здесь: http://jsfiddle.net/5yBt8/1/, но я получаю одну ошибку в первый раз ... любая идея почему? –

+0

@AdrianFlorescu вероятно потому, что атрибут данных ввода не был инициализирован. См. Мое редактирование выше. –

+0

Благодарим за помощь. Посмотрите на окончательный результат: http://jsfiddle.net/5yBt8/9/ Любая идея, почему число не совпадает с желаемым результатом? (То же, что и вход?) –

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