如何实现 Ben Alman 的去抖动 jQuery?
How to implement Ben Alman's debounce jQuery?
我正在使用这个项目:https://github.com/cowboy/jquery-throttle-debounce
我的代码可以正常工作,但去抖被忽略了。
所以瀑布函数在每次图像加载时都会被调用,但 2 秒的延迟没有得到遵守。没有显示错误。
实现这个的正确方法是什么?
我现在已经摆弄了 3 个小时,但找不到解决方案。
(function($) {
$(document).ready(function(e) {
var $waterfall = $('.waterfall');
if ($waterfall.length) {
$waterfall.waterfall({});
}
// sort the waterfall when images are loaded
var $waterfall_images = $waterfall.find('img');
$waterfall_images.each(function(j, image) {
var $img = $(image);
$img.load(function() {
$.debounce(2000, $waterfall.waterfall('sort'));
});
});
});
})(jQuery);
<ul class="waterfall">
<li class="waterfall-item">
<a href="hidden link" title="hidden title">
<img alt="hidden alt" title="hidden title" data-srcset="hidden in this example" data-src="also hidden in this example" src="still hidden in this example" data-sizes="(min-width:440px) 300px, 95vw" class=" lazyloaded" sizes="(min-width:440px) 300px, 95vw"
srcset="think I'll hide this one too">
<span class="waterfallImgOverlay"></span>
</a>
</li>
</ul>
您正在调用方法,而不是分配引用。最简单的事情,将其包装在一个函数中。第二件事是 debounce returns 方法,因此您需要存储它 returns 的内容然后调用该方法。
(function($) {
$(document).ready(function(e) {
var $waterfall = $('.waterfall');
if ($waterfall.length) {
$waterfall.waterfall({});
}
var waterfallSort = $.debounce(2000, function(){ $waterfall.waterfall('sort'); });
// sort the waterfall when images are loaded
var $waterfall_images = $waterfall.find('img');
$waterfall_images.each(function(j, image) {
var $img = $(image);
$img.load( waterfallSort );
});
});
})(jQuery);
我正在使用这个项目:https://github.com/cowboy/jquery-throttle-debounce
我的代码可以正常工作,但去抖被忽略了。 所以瀑布函数在每次图像加载时都会被调用,但 2 秒的延迟没有得到遵守。没有显示错误。
实现这个的正确方法是什么? 我现在已经摆弄了 3 个小时,但找不到解决方案。
(function($) {
$(document).ready(function(e) {
var $waterfall = $('.waterfall');
if ($waterfall.length) {
$waterfall.waterfall({});
}
// sort the waterfall when images are loaded
var $waterfall_images = $waterfall.find('img');
$waterfall_images.each(function(j, image) {
var $img = $(image);
$img.load(function() {
$.debounce(2000, $waterfall.waterfall('sort'));
});
});
});
})(jQuery);
<ul class="waterfall">
<li class="waterfall-item">
<a href="hidden link" title="hidden title">
<img alt="hidden alt" title="hidden title" data-srcset="hidden in this example" data-src="also hidden in this example" src="still hidden in this example" data-sizes="(min-width:440px) 300px, 95vw" class=" lazyloaded" sizes="(min-width:440px) 300px, 95vw"
srcset="think I'll hide this one too">
<span class="waterfallImgOverlay"></span>
</a>
</li>
</ul>
您正在调用方法,而不是分配引用。最简单的事情,将其包装在一个函数中。第二件事是 debounce returns 方法,因此您需要存储它 returns 的内容然后调用该方法。
(function($) {
$(document).ready(function(e) {
var $waterfall = $('.waterfall');
if ($waterfall.length) {
$waterfall.waterfall({});
}
var waterfallSort = $.debounce(2000, function(){ $waterfall.waterfall('sort'); });
// sort the waterfall when images are loaded
var $waterfall_images = $waterfall.find('img');
$waterfall_images.each(function(j, image) {
var $img = $(image);
$img.load( waterfallSort );
});
});
})(jQuery);