Некоторые баллы.
Используйте $ .data вместо $ .fn.data
// regular
$(elem).data(key,value);
// 10x faster
$.data(elem,key,value);
Затем Вы можете получить предыдущее значение через объект события, не усложняя свою жизнь:
$('#myInputElement').change(function(event){
var defaultValue = event.target.defaultValue;
var newValue = event.target.value;
});
Имейте в виду, что defaultValue НЕ является последним установленным значением. Это значение, с которым поле было инициализировано. Но вы можете использовать $ .data для отслеживания "oldValue"
Я рекомендую вам всегда объявлять объект «событие» в функциях вашего обработчика событий и проверять их с помощью firebug (console.log (event)) или чего-то еще Там вы найдете много полезных вещей, которые избавят вас от создания / доступа к объектам jquery (что здорово, но если вы можете быть быстрее ...)