具有延迟加载图像的数据表的工作示例
Working example of datatables with lazy loading of images
我正在寻找数据 table 中 lazy-loading 个图像的工作示例,它在单击列标题更改排序后继续工作。
我最成功的方法是使用 jquery.lazyload 插件:
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js"></script>
<script type="text/javascript">
$(function() {
$("img.lazy").lazyload();
});
</script>
这是我引用图片的方式:
<img class="lazy" data-original="https://example.com/image.jpg" width="50" height="50" />
如果我从不更改排序,延迟加载工作正常。但是,如果我决定通过单击其中一个列标题来更改 table 的排序,延迟加载将停止工作,并且此时未下载的任何图像在我将它们滚动到视图中时将保持空白。
我不是天生的 javascript 或 jQuery 专家,所以必须从 SO 和其他地方的示例中学习。但是这个问题难倒了我。从我的研究中,我看到了很多关于它如何可能的评论和片段,但没有实际的工作示例证明这是受支持的。
https://datatables.net/forums/discussion/1959/image-thumbs-in-table-column-lazy-loading
我不会喋喋不休地说出我在这里和其他地方找到的许多其他链接,我只需要一些好心人的帮助。
由于我无权访问您的后端或有关您的情况的更多信息,我有点被这个问题所困扰,但我认为可以在绘图事件中调用您的延迟加载代码,例如这个:
$(document).ready(function() {
$("img.lazy").lazyload();
$('.table-data').DataTable({
"drawCallback": function(){
$("img.lazy").lazyload();
setTimeout(function(){
$(window).trigger("scroll")
}, 1000);
}
});
});
我有一个示例 here,但我认为您可能正在使用服务器端处理?
使用 drawCallback
选项定义每次 DataTables 执行绘制时都会调用的函数。
例如:
$('.table-data').DataTable({
drawCallback: function(){
$("img.lazy").lazyload();
}
});
有关代码和演示,请参阅 this jsFiddle。
我正在寻找数据 table 中 lazy-loading 个图像的工作示例,它在单击列标题更改排序后继续工作。
我最成功的方法是使用 jquery.lazyload 插件:
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery.lazyload/1.9.1/jquery.lazyload.min.js"></script>
<script type="text/javascript">
$(function() {
$("img.lazy").lazyload();
});
</script>
这是我引用图片的方式:
<img class="lazy" data-original="https://example.com/image.jpg" width="50" height="50" />
如果我从不更改排序,延迟加载工作正常。但是,如果我决定通过单击其中一个列标题来更改 table 的排序,延迟加载将停止工作,并且此时未下载的任何图像在我将它们滚动到视图中时将保持空白。
我不是天生的 javascript 或 jQuery 专家,所以必须从 SO 和其他地方的示例中学习。但是这个问题难倒了我。从我的研究中,我看到了很多关于它如何可能的评论和片段,但没有实际的工作示例证明这是受支持的。
https://datatables.net/forums/discussion/1959/image-thumbs-in-table-column-lazy-loading
我不会喋喋不休地说出我在这里和其他地方找到的许多其他链接,我只需要一些好心人的帮助。
由于我无权访问您的后端或有关您的情况的更多信息,我有点被这个问题所困扰,但我认为可以在绘图事件中调用您的延迟加载代码,例如这个:
$(document).ready(function() {
$("img.lazy").lazyload();
$('.table-data').DataTable({
"drawCallback": function(){
$("img.lazy").lazyload();
setTimeout(function(){
$(window).trigger("scroll")
}, 1000);
}
});
});
我有一个示例 here,但我认为您可能正在使用服务器端处理?
使用 drawCallback
选项定义每次 DataTables 执行绘制时都会调用的函数。
例如:
$('.table-data').DataTable({
drawCallback: function(){
$("img.lazy").lazyload();
}
});
有关代码和演示,请参阅 this jsFiddle。