2014-11-17 75 views
0

我正在通過示例學習JQuery。請檢查此琴:http://jsfiddle.net/4tjof34d/2/修復雙重電話並獲得價值

我有兩個問題:
1:當一個人打進入showText()被調用兩次,從而console.log(this.id+ " " +this.value);被調用了兩次,我該怎麼補充,以便它只能被調用一次?

2:我得到了文本框的ID和值,但我也想知道什麼是舊的ID和值,以便我可以進行比較測試。我怎麼做?

如:

var oldValue = ? // How do I do this? 
var newValue = this.value; 

然後,我可以做這樣的事情:你的第一個問題

if(newValue != oldValue) 
{ 
// Do .ajax() - update DB 
} 

回答

1

showText被調用了兩次,即,在模糊和輸入

變化的模糊函數如下
$('.input').blur(showText).keyup(function (e) { if(e.which === 13) { this.blur(); } });
對於第二個問題我會去一個globa ●變量作爲標誌
http://jsfiddle.net/x1ez7Lek/6/

+1

http://jsfiddle.net/x1ez7Lek/2/ – shaN

+0

我只是測試的代碼,它似乎工作,但你是怎麼做到這一點,而無需使用stopPropagation?另外,我認爲「prev」有一個問題,因爲當我註釋掉if(this.id!= prev)時,我做了'console.log(this.id +「」+ this.value +「」+ prev );'我得到'prev'總是爲空 – Ryan

+1

stopPropagation是一開始時想到的東西,我看到了更簡單的方法來解決你的問題。你已經在調用模糊函數,爲什麼不只是在keyup上觸發它 – shaN