我有这段代码。
<div class="content__img-txt">
<a class="input-group">
<input class="input-group-field" type="text">
<div class="input-group-button">
<input type="submit" class="button" value="»">
</div>
</div>
function showLetter (field, text, delay) {
$(field).val(text.substring(0,1));
for(var i = 2; i <= text.length; i++)
{
setTimeout(function(){
$(field).val(text.substring(0,i));
}, delay);
}
}
showLetter (".input-group-field", "Show letter for letter with a delay of 1 second", 1000);
The console says : Uncaught TypeError: Cannot read property 'length' of undefined.
在文档完全加载后,我如何才能在输入字段中同时显示一个字母一个字母而不是整个文本?
最佳答案
我猜你需要一个闭包来确保 setTimeout 有自己的循环,并且你需要像下面这样增加延迟:
function showLetter(field, text, delay) {
$(field).val(text.substring(0, 1));
for (var i = 2; i <= text.length; i++) {
(function(i) {
setTimeout(function() {
$(field).val(text.substring(0, i));
}, (delay=delay+100));
})(i)
}
}
showLetter(".input-group-field", "Show letter for letter with a delay of 1 second", 1000);
关于javascript - 在输入字段字母中延迟显示字母的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35868647/