var debounce = function (func, wait, lossless) {
var lastTimeout, alreadyDo = false;
if (typeof lossless == 'undefined')
lossless = true;
return function () {
var context = this,
args = arguments;
if (!alreadyDo) {
alreadyDo = true;
setTimeout(function () { alreadyDo = false }, wait);
clearTimeout(lastTimeout);
func.apply(context, args);
} else if (lossless) {
clearTimeout(lastTimeout);
lastTimeout = setTimeout(function () {
func.apply(context, args);
}, wait);
}
};
}
///防抖函数 ///防止事件函数高频执行,间隔wait毫秒执行 ///lossless是否保存最后一次未到间隔时间的执行