Jquery随着延迟而改变

时间:2012-02-24 03:02:35

标签: javascript jquery

  

可能重复:
  Throttle event calls in jQuery

我喜欢jQuery的.change()功能,但是当用户快速更改选择下拉列表中的选项时,我想阻止触发大量的AJAX请求。例如,当用户使用鼠标滚轮时,它会在选择新选项时触发每个选项。

一旦用户停止更新选择下拉列表,我想提出一个干净利落的方法来处理这些更新。

有没有一种处理这种情况的巧妙方法?

2 个答案:

答案 0 :(得分:70)

执行此操作的典型方法是使用setTimeout和clearTimeout:

var wto;

$('#select').change(function() {
  clearTimeout(wto);
  wto = setTimeout(function() {
    // do stuff when user has been idle for 1 second
  }, 1000);
});

答案 1 :(得分:8)

我建议您使用underscore.js:

var newFunction=_.debounce(function (){ 
  alert('You function, after use stop scroll')
},1000); //Wait seconds after he stops

$('#select').change(newFunction);

详细了解underscore.debounce