javascript - 在输入字段字母中延迟显示字母的文本

标签 javascript jquery input delay settimeout

我有这段代码。

        <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="&raquo;">
          </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);

DEMO

关于javascript - 在输入字段字母中延迟显示字母的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35868647/

相关文章:

javascript - 如何使用 javascript 将特殊的 UTF-8 字符转换为其等效的 iso-8859-1?

javascript - 如何找到输入字段中最后一个字母的绝对或相对位置?

javascript - 导出时更新的 yAxis 标题丢失

javascript - "bad"这个构造函数到底有多厉害?

javascript - jQuery : TypeError: invalid 'in' operand a

javascript - AngularJS uib-datepicker 在 uib-tab 中的第一个打开/关闭事件后不显示日历

javascript - 如何在 MVC 4 中包含基于 JavaScript 的插件?

jQuery 在相邻元素淡出时进行内联 div 转换

javascript - 在不相关的文本框中输入内容时 Div 消失

javascript - 在单击 div 时向输入添加不同的值