700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 当有多个table.render时 如何判断全部加载完毕

当有多个table.render时 如何判断全部加载完毕

时间:2020-04-04 23:23:17

相关推荐

当有多个table.render时 如何判断全部加载完毕

情景复现

我使用了layui table.render函数,需要计算多个表格的合计值。然后又不知道怎么判断加载完毕了吗(这个页面内需要计算的还有一些表单项)

解决方法

1 我想到的第一种方法

和这个热心人给我提供的建议差不多

您可以在当前页面设置个变量初始化为0,每个表格的done回调中让变量+1,判断是否和您的表格个数相同,如果是的话再做之后的处理

搞一个变量,在每个done那里+1,最后判断是否等于表格数。但是我不知道怎么一直不停的询问这个变量满足条件了没有。直到想到他们都是ajax请求,看到这个参考链接。

解决:

//先设变量var count = 0;done:function(res) {//每个表格里面加一下count++;//调用判断函数 达到询问的效果handle();}function handle() {if (count === 3) {//计算合计}}

2 我想到的第二种方法

因为我的页面内涉及一些必填的表单项,正常人的思维肯定是等页面全加载完成后再填写这些。于是,我想在必填项发生变化时,计算总值

3 我想到的第三种方法

(我又试了一下,不能用,不知道为啥)

但是后来又遇到了一些新问题,我不得不需要在进入页面时直接计算合计。然后我询问了小伙伴,他告诉我可以用$().ready(function(){});

但是我发现一个问题,这个判断的是整个dom是否加载完成,而由于表格是异步的,所以顺序是dom加载完成->加载表格。

那么,就可以这样,让表格变成同步加载,因为我要计算合计,这里异步的需要貌似不大。

所以可以在tabler.render里加上async:false,然后再用$().ready(function(){});判断。

4 我想到的第四种方法

然后我就在想,同步为啥不能用。欸?他是ajax请求,那么我可以找判断所有异步请求结束的方法,于是找到了这种$(document).ajaxStop(function(){});

参考链接

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。