首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决添加到图片库图像列表中的元素的过多递归误差

如何解决添加到图片库图像列表中的元素的过多递归误差
EN

Stack Overflow用户
提问于 2021-04-29 15:38:05
回答 1查看 107关注 0票数 0

下面有下面的代码,用于监视库加载图像的时间(这是通过JavaScript完成的)。然后计算加载的图像总量,然后减去已经可见的图像数量(使用CSS,我们隐藏所有图像,然后只显示前4个图像)。在第四个可见图像上,我们想用文本“查看更多”来显示剩余的图像(隐藏图像的数量)。例如,总共有34张图像,只有4张可见,30张隐藏在第4张可见图像上,我们显示"30查看更多“

代码语言:javascript
复制
// When gallery div is loaded/inserted 
jQuery('.mapsvg-controller-view').on('DOMNodeInserted','.mapsvg-gallery-wrap', function() {  
        
            var galleryFigureNum = 0;
            var moreImagesNum = 0;
    
            // Count the total number of figure elements (images) 
            jQuery('.mapsvg-gallery > figure').each(function(){
                galleryFigureNum++;
            });
            
            // Subtract the amount of already visible images from the total available
            moreImagesNum = galleryFigureNum - 4;
    
            // Add more available images number and text to 4th figure
            jQuery('.mapsvg-gallery').children().eq(3).append('<div>'+moreImagesNum+'More Position 4</div>');
    });

我遇到的问题是,我得到了以下错误:

Uncaught :太多的递归

由这条生产线生产的产品:

代码语言:javascript
复制
jQuery('.mapsvg-gallery').children().eq(3).append('<div>'+moreImagesNum+'More Position 4</div>');

这导致多次插入<div> (239+)。

如何解决太多的递归错误?我只想添加一次<div>

注意:使用,在后面附加或,产生相同的错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-29 16:17:35

代码语言:javascript
复制
jQuery('.mapsvg-gallery').children().eq(3).append('<div>'+moreImagesNum+'More Position 4</div>');
});

这一行是在侦听的div中添加一个元素,该元素重新触发DOMNodeInserted事件,重新添加“更多”div,重新触发DOMNodeInserted.

您需要将您的“更多”消息移出您正在收听的div之外,或者更有可能完全不听DOMNodeInserted --您知道什么时候加载了您的图像,以及理想情况下它们有多少。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67320639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档