jQuery的变化与延迟
问题描述:
我喜欢的jQuery的.change()功能,但我想,以防止触发吨AJAX请求时的用户快速更改选择下拉菜单中的选项。举个例子,当用户使用鼠标滚轮时,当他们选择新选项时,它将触发每个选项。
我想提出一个很好的干净的方式来处理只有当用户停止更新选择下拉菜单时才发送这些更新。
处理这种情况有没有一种简洁的方法?
答
做到这一点,典型的方法是使用setTimeout和clearTimeout:
var wto;
$('#select').change(function() {
clearTimeout(wto);
wto = setTimeout(function() {
// do stuff when user has been idle for 1 second
}, 1000);
});
答
我建议你使用underscore.js则:
var newFunction=_.debounce(function(){
alert('You function, after use stop scroll')
},1000); //Wait seconds after he stops
$('#select').change(newFunction);
了解更多关于underscore.debounce。
你在找什么叫做* debouncing *。 – 2012-02-24 03:08:01