আপনি ব্যবহার করতে পারেন setTimeout()এবং clearTimeout()এর সাথে একত্রে jQuery.data:
$(window).resize(function() {
clearTimeout($.data(this, 'resizeTimer'));
$.data(this, 'resizeTimer', setTimeout(function() {
//do something
alert("Haven't resized in 200ms!");
}, 200));
});
হালনাগাদ
আমি jQuery এর ডিফল্ট (& ) - আগস্ট-হ্যান্ডলার বাড়াতে একটি এক্সটেনশন লিখেছি । ইভেন্টটি যদি কোনও নির্দিষ্ট বিরতির জন্য ট্রিগার না করা হয় তবে নির্বাচিত উপাদানগুলিতে এটি এক বা একাধিক ইভেন্টের জন্য ইভেন্ট হ্যান্ডলার ফাংশন সংযুক্ত করে। আপনি যদি পুনরায় আকার পরিবর্তন ইভেন্টের মতো, বিলম্বের পরে কেবল কোনও কলব্যাক চালাতে চান তবে এটি কার্যকর।
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));
এটিকে অন্য যে কোনও onবা bindআগস্ট হ্যান্ডলারের মতো ব্যবহার করুন , আপনি শেষ হিসাবে অতিরিক্ত প্যারামিটারটি পাস করতে পারেন তা বাদ দিয়ে:
$(window).on('resize', function(e) {
console.log(e.type + '-event was 200ms not triggered');
}, 200);
http://jsfiddle.net/ARTsinn/EqqHx/