/**
* 防止连续事件
* @param id 事件触发Id
* @param fn 内部回调方法
* @param wait 延迟时间
* */
var _timer = {};
function delay_till_last(id, fn, wait) {
if (_timer[id]) {
window.clearTimeout(_timer[id]);
delete _timer[id];
}
return _timer[id] = window.setTimeout(function () {
fn();
delete _timer[id];
}, wait);
}
用法
delay_till_last('cityText', function() {
var data = $('.city_province').data('city');
var searchInfo = new Array();
$.each(data,function(k,v){
if(v.city_name.search(text)>-1){
searchInfo.push({
city_name: v.city_name
});
}
});
$('.widget-autocomplete-list').empty();
$.each(searchInfo,function(k,v){
$('.widget-autocomplete-list').append('<li class="list-li">'+v.city_name+'</li>');
});
}, 500);