相关疑难解决方法(0)

在jQuery中调用事件调用

我有一个keyup事件绑定到一个需要大约四分之一秒才能完成的函数.

$("#search").keyup(function() {
  //code that takes a little bit to complete
});
Run Code Online (Sandbox Code Playgroud)

当用户键入整个单词或快速按下键时,该功能将连续多次调用,并且需要一段时间才能完成.

有没有办法限制事件调用,以便如果有几个快速连续,它只触发最近调用的那个?

javascript jquery events

41
推荐指数
3
解决办法
3万
查看次数

如何在jQuery事件处理程序中存储和重用超时?

我有一个按钮,单击该按钮将启动超时功能,如果在执行该功能之前再次单击该按钮,则希望清除以前的超时,以便可以启动新的超时。

演示代码:

<div id='a'>lorem</div>

$('#a').click(function(){
  //code to clear previous timeout
  //This is not working: clearTimeout(timeout);
  var timeout = setTimeout(function(){
   //do something
  },5000);
  return timeout;    
})
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一方法是使timeout全球化,但全球化是丑陋的。

有什么更好的方法吗?在上面的代码中,timeout返回到哪里?我可以在哪个范围内使用它?

javascript jquery

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

标签 统计

javascript ×2

jquery ×2

events ×1