我是JQuery的新手。
我的需求是,我从课堂上找到了很少的课堂,从DB我正在上课。
我正在以<,p>等格式显示它
Classroom Name Details
------------------------------
classroom 1 Details
classroom 2 Details
classroom 3 Details
classroom 4 Details
classroom 5 Details
现在,当人们点击教室1的详细信息时,应该打开对话框,显示属于教室的学生的详细信息1.各个教室应该打开相应的对话框。
如果通过查看我用Google搜索的几个链接中的示例,我可以打开对话框,但我的问题是我的问题是我不知道将要有多少教室,因为它基于List i将从DB获得。
所以我应该在点击细节之前和之后填充我的DIV,只是打开那个DIV作为对话框? 这种要求应采用何种一般方法。
请不要说我尝试了什么,如果需要,我也会粘贴我的代码。当我从一个链接中取一个例子并根据我的需要修改它时。
有人可以给我一些链接或帮我提供样品和解释。
答案 0 :(得分:0)
当我使用jQuery Dialog时,我遇到了类似的问题。我使用jQuery数据函数最终将对话框相关数据存储到DOM中(根据您的需要,教室和细节之间的关系)。
var fakeData = [{id:"class1",students:[{name:"student1","tel":"12456"},{name:"student2","tel":"12456"}]},{id:"class2",students:[{name:"student3","tel":"12456"},{name:"student4","tel":"12456"}]},{id:"class3",students:[{name:"student5","tel":"12456"},{name:"student6","tel":"12456"}]},{id:"class4",students:[{name:"student7","tel":"12456"},{name:"student8","tel":"12456"}]}];
//generate detail buttons and store students data in DOM
fakeData.forEach(function(element, index, array){
$("#btns").append('<button id="'+element.id+'" class="detail-btn">Classroom '+(index+1)+'</button>');
$("body").data(element.id,element.students);
});
//register click event
$(".detail-btn").click(function(){
$("#dialog").empty();
var students = $("body").data($(this).attr("id"));
students.forEach(function(element,index,array){
$("#dialog").append("<div>"+element.name+"</div>");
});
$("#dialog").dialog("open");
});
我使用DOM id属性作为数据的唯一键。并在单击特定详细信息按钮时获取数据。
您不必在HTML中填充大量div,只需使用此解决方案动态更新对话框内联内容。
但直到现在我还不知道这个解决方案是否有任何副作用。也许有人可以给出进一步的解释。
我举了一个简单的例子JSFiddle Demo。
希望这对你有所帮助。