相关疑难解决方法(0)

如何延迟.keyup()处理程序直到用户停止输入?

我有一个搜索领域.现在它搜索每个keyup.因此,如果有人键入"Windows",它将使用AJAX搜索每个键盘:"W","Wi","Win","Wind","Windo","Window","Windows".

我希望有一个延迟,所以它只在用户停止键入200毫秒时搜索.

在函数中没有这个选项keyup,我试过了setTimeout,但它没有用.

我怎样才能做到这一点?

javascript jquery

618
推荐指数
12
解决办法
25万
查看次数

在一个人停止输入后如何调用函数?

我在HTML页面上有一个输入,其中一个人会输入内容,而我想要的是每次他们停止输入时调用一个函数.我知道onkeypress事件,但每次输入一个字符时都会调用它.这是我想要的一个例子:

  1. 人类在输入中输入"这是一个测试"
  2. 在人们停止输入后,应该调用函数foo()
  3. 人在输入中键入其他内容
  4. 在人们停止输入后,应该调用函数foo()
  5. 重复....

这可能吗?

非常感谢!

html javascript

5
推荐指数
1
解决办法
2470
查看次数

如果为 True,则反跳 500 毫秒,否则执行

剧透;我对 jQuery/Javascript 完全陌生。

我有一个布尔字段CheckMe和一个输入字段textField

如果textField为空,则CheckMe不应显示,否则应该显示(这意味着如果从非空变为空,CheckMe则应立即再次隐藏)。我想解析一个延迟,比如说 500 毫秒,即CheckMe显示如果text如果不为空并且在最后一次按键 500 毫秒后

我尝试使用SO 答案中的去抖函数(请参阅下面的实现),但问题是,在空CheckMe500 毫秒后也首先隐藏textField

<script type="text/javascript">
  function debounce(fn, duration) {
  var timer;
  return function(){
    clearTimeout(timer);
    timer = setTimeout(fn, duration);
  }
}

$(document).ready(function () {
    const textField= $("#textField");
    const CheckMe= $("#CheckMe");
    CheckMe.hide();

    textField.on("input", debounce(()=> {
      if (textField.val()) {
        CheckMe.show();
      } else {
        CheckMe.hide();
      }
    },500));
});
</script>
Run Code Online (Sandbox Code Playgroud)

但当checkMe我清除时,它会在 500 毫秒后消失textField它就会消失。 …

javascript jquery debouncing

5
推荐指数
1
解决办法
1235
查看次数

jQuery事件只在每个时间间隔

$(document).ready(function() {

    $('#domain').change(function() {

        //

    });

});
Run Code Online (Sandbox Code Playgroud)

更改函数内的代码基本上会发送ajax请求来运行PHP脚本.#domain是文本输入字段.基本上我想要做的是在文本字段内的某些文本中将ajax请求作为用户类型发送(例如搜索建议).

但是,我想设置一个时间间隔,以减轻PHP服务器的负载.因为如果每当用户向文本字段添加另一个字母时jQuery发送AJAX请求,它将消耗大量带宽.

所以我想设2秒作为间隔.每次用户键入字母时都会触发AJAX请求,但最大频率为2秒.

我怎样才能做到这一点?

javascript jquery

4
推荐指数
3
解决办法
4856
查看次数

jQuery:将文本URL转换为链接作为输入

我正在取得进展但不太确定如何使这项工作正常......

我有一个contenteditable div,其功能类似于textarea.

我还有一个正则表达式来识别输入的URL并自动链接它们.我遇到了麻烦,但是当用户输入时,这项工作是"实时"的.

这是迄今为止我所拥有的jsFiddle.我遇到的另一个问题是在输入链接后光标跳转到div的开头(因为我正在替换div .html()?)

是否有创造性的解决方案用于.replace()div中的单个文本字符串而无需替换div的整个内容?

regex jquery replace contenteditable

4
推荐指数
1
解决办法
3145
查看次数

标签 统计

javascript ×4

jquery ×4

contenteditable ×1

debouncing ×1

html ×1

regex ×1

replace ×1