【发布时间】:2014-01-19 08:12:15
【问题描述】:
提前感谢您的任何建议 - 我有一张桌子,上面有一堆 tbody 作为行。 每个 tbody 可以单独展开,也可以一起展开。 我正在通过边框类在扩展的 tbody 周围添加边框 还有 2 个扩展级别 - 因此当任一级别显示时都会添加边框类。
我有一个简单的函数:
function toggleBorder(el){
if($(el).height() > 50){
$(el).addClass('tbodyBorder');
}else{
$(el).removeClass('tbodyBorder');
}
}
(顺便说一句:我检查高度的原因是因为我搭载的点击事件是切换功能,所以我最大限度地减少了创建新点击事件的需要。)
此功能可以通过 4 种不同方式触发。其中 2 个使用 ajax 来获取要在展开部分中显示的数据,因此我将 toggleBorder() 放在 setTimeout 函数中,当我展开单行时,该函数可以正常工作,
但是 - 这是我的问题:
当我想扩展所有行时,服务器可能需要 X 时间来返回所有数据并填充行,如果它在加载数据之前进行检查,则高度不会改变,因此不会添加边框类,我不断使 setTimeout 更长,当我有一行时这很可笑.....
任何想法....考虑 setInterval 但似乎过分了....
【问题讨论】:
-
你会使用 Dom 突变而不是 setInterval 来获取变化,但我想每次它应该等待看看在一定时间内元素是否没有其他变化。跨度>