我在使用jQuery對話框時遇到了類似的問題。我最終使用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。
希望這對你有所幫助。
謝謝雞肉。您的演示示例幫助我思考需要進行的修改,以滿足我的確切需求。 – Jayesh