我正在从Jquery动态加载HTML表的数据。
$(document).ready(function () { for (var i = 0; i < StudentsList.length; i++) { LoadRow(StudentsList[i]); } }); function LoadRow(student) { setTimeout(function (student) { $("#tbl tbody").append("" + student.Name + " "); }, 1000); }
我希望表能够延迟逐个加载行。
我怎么做? 我用1秒尝试了SetTimeout
,但由于某种原因,它无法正常工作。 该表在1秒后完全加载。
您的代码无效,因为每行调用n = 1000的append。 尝试以下代码,它将解决您的问题,但它肯定不是最好的方法。
$(document).ready(function () { for (var i = 0; i < StudentsList.length; i++) { LoadRow(StudentsList[i],i); } }); function LoadRow(student,n) { setTimeout(function (student) { $("#tbl tbody").append("" + student.Name + " "); }, 1000*n); }
工作小提琴
jQuery的
$("tbody tr").each(function () { $(this).fadeIn($(this).index() * offset); });
链接到结果
希望这是你要找的…… !!
SetTimeout
只运行一次。 你想要的是SetInterval
所以它像时钟一样运行。 这就是我解决它的方法:
// From your example before function LoadRow(student) { $("#tbl tbody").append("" + student.Name + " "); } // Say for example you have these as your students: var students = [{ Name: 'joe' }, { Name: 'matt' }, { Name: 'sherry' }]; // The index of the last student var l = students.length; // Start a Count index var i = 0; // START! var t = setInterval(function(){ // Load one LoadRow( students[i] ); // Increment up i++; // Check if all is done, if so stop and clear out if (i == l) clearInterval(t); }, 1000);
应该试试这种方式
需要了解更多jQuery教程分享加载HTML表格中每一行的延迟,都可以关注jQuery技术分享栏目—计算机技术网(www.ctvol.com)!
$(document).ready(function () { LoadRow(StudentsList); }); function LoadRow(list) { if(list != undefined || list.length < 1) { // done // do something else return; } // Get first item const student = list.shift(); $("#tbl tbody").append(`td>${student.Name} `); setTimeout(function (student) { // Recall the function after 0.15 second LoadRow(list); }, 150); }
以上就是jQuery教程分享加载HTML表格中每一行的延迟相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/jquerytutorial/981614.html