将变量附加到元素并在用户输入暂停

时间:2018-03-22 13:40:51

标签: javascript jquery timeout

到目前为止我所取得的成就:将一个字符串附加到目标元素以及限制可能的字符。

 $(document).keypress(function(e) {
   var s = String.fromCharCode(e.which);
   if (s.match(/[a-zA-Z\.]/))
     $("#input p").append(s);
   console.log(s + ' is a match!');
 });

https://jsfiddle.net/ngac8wj5/7/

我正在努力: 如果用户暂停了持续时间X,如何实现在用户输入上重置目标元素html内容的方法。

任何想法如何处理这个? 非常感谢帮助

1 个答案:

答案 0 :(得分:0)

花了更多的时间在这上面我似乎已经部分达到了预期的行为,但是在某种程度上出现了意想不到的现象,它仍然比预期更快地清理容器。

var timeout;
var lapsed = false;

function cleanUp(e){
  lapsed = true
};

$(document).keypress(function(e) {
  timeout = setTimeout(cleanUp, 1500)

  if(lapsed == true ) {
    $("#input p").empty();
  }

  if(timeout) {
    lapsed = false
    var s = String.fromCharCode(e.which);
    if (s.match(/[a-zA-Z\.]/))
      $("#input p").append(s);
    console.log(s);
  } else {
    cleanUp();
  }
});

https://jsfiddle.net/ngac8wj5/76/