就是這樣。如何獲得textarea的舊值以便將其與新值進行比較?當前值在觸發事件後變成舊值(例如,鍵入事件)。如何獲得textarea的舊值
我已經看到了一些解決方案,例如,使用cookie記錄舊值和新值,但是,由於稍後要執行的操作類型,這種解決方案在我的情況下不起作用。
希望有一個比這更好的建議。
在此先感謝。
UPDATE:
以下後從@drachenstern一些建議,@Matthew,@Peter,我結束了這樣的事情
var startTimer = null;
var oldValue;
$("#textarea").keydown($.debounce(1000, true, function(){
oldValue = $("#textarea").val();
}
));
$("#textarea").keyup(function(){
if(startTimer) clearTimeout(startTimer);
startTimer = setTimeout(function(){
var newValue = $("#textarea").val();
d = // here a clever comparison
oldValue = newValue;
},2000);
})
順便說一句,$.debounce
是一個函數從jQuery的油門/反彈插件。
這正是我想要的,但是,我想獲得setTimeout函數和keyup函數以外的變量d
,以便在別處使用它。但是,當涉及到返回值時,clearTimeout似乎很棘手。任何方式來獲得d
的價值?
做一個全局變量(是的,我知道全局變量是邪惡的)並將d賦值給該變量。 – 2011-03-08 04:43:38
@Peter:只有選項可用?感謝您的關注。 – 2011-03-08 05:11:11
我確定這不是唯一的選擇,但這是我現在能想到的唯一選擇。 – 2011-03-08 05:30:55