setTimeout()Ve kullanabilirsinizclearTimeout() birlikte jQuery.data:
$(window).resize(function() {
clearTimeout($.data(this, 'resizeTimer'));
$.data(this, 'resizeTimer', setTimeout(function() {
//do something
alert("Haven't resized in 200ms!");
}, 200));
});
Güncelleme
JQuery'nin varsayılan (& ) -event-işleyicisini geliştirmek için bir uzantı yazdım . Olay belirli bir aralık için tetiklenmemişse, seçilen öğelere bir veya daha fazla olay için bir olay işleyici işlevi ekler. Bu, bir geri aramayı yalnızca yeniden boyutlandırma etkinliği veya başka bir gecikmeden sonra tetiklemek istiyorsanız kullanışlıdır.
https://github.com/yckart/jquery.unevent.jsonbind
;(function ($) {
var methods = { on: $.fn.on, bind: $.fn.bind };
$.each(methods, function(k){
$.fn[k] = function () {
var args = [].slice.call(arguments),
delay = args.pop(),
fn = args.pop(),
timer;
args.push(function () {
var self = this,
arg = arguments;
clearTimeout(timer);
timer = setTimeout(function(){
fn.apply(self, [].slice.call(arg));
}, delay);
});
return methods[k].apply(this, isNaN(delay) ? arguments : args);
};
});
}(jQuery));
Diğerleri gibi kullanın onbindSon olarak fazladan bir parametre iletebilmeniz dışında, veya olay işleyicisi :
$(window).on('resize', function(e) {
console.log(e.type + '-event was 200ms not triggered');
}, 200);
http://jsfiddle.net/ARTsinn/EqqHx/