我正在使用jQuery UI中的Accordion control。手风琴的内容是用JavaScript的用户数据动态生成的,然后在创建之前通过innerHTML
属性插入到手风琴中。这种方法有效,但有一个缺点。由于我为所有标签生成HTML,因此产生的手风琴可能有些迟钝。例如,在我的示例中有256个手风琴标签和每个标签的一些广泛的HTML,它在我的旧笔记本电脑上表现得有点慢。
所以我很好奇,为了优化性能,是否有可能在手风琴开启之前将HTML内容附加到手风琴的标签上?还有第二个问题,我可以在标签关闭后立即将其删除吗?
为了提供更多细节,我的手风琴是这样创造的:
$("#accordion").accordion({
collapsible: true,
heightStyle: "content",
active: nActiveTab
});
答案 0 :(得分:1)
使用beforeActivate
和activate
方法,如API中所述。
beforeActivate: function (event, ui) {
var el = ui.newPanel[0];
if (el) el.innerHTML = returnContent(el.id); // Opening
},
activate: function (event, ui) {
var el = ui.oldPanel[0];
if (el) el.innerHTML = "" // Closing
}