2017-09-06 64 views
1

我試圖在將鼠標懸停在輸入字段上時顯示輸入字段中的密碼,並在1秒後將其更改回密碼。jQuery將輸入更改爲文本,更改爲密碼

這是我有:

if (this.type === 'password') { 
    this.type = "text"; 
    setTimeout(function() { 
    this.type = "password"; 
    }, 100) 
} 

它改變文本的密碼,但不改回來。 我試圖這樣做來停止代碼將所有文本字段更改爲密碼。

任何想法我可以做到這一點?

感謝

+4

在你的超時時間內,這個'this'不是你認爲的那樣。 –

+0

謝謝 - 我沒有意識到, – Tom

回答

1

更改您的代碼

if (this.type === 'password') { 
    this.type = "text"; 
    var that = this; 
    setTimeout(function() { 
    that.type = "password"; 
    }, 1000) 
} 

握住this引用到一個變量&使用它裏面setTimeout

希望這會幫助你。

+0

謝謝你解釋我錯過了什麼,它的工作原理。 – Tom