我可以动态生成&在打开和关闭选项卡之前从jQuery Accordion中删除内容?

时间:2014-09-20 21:41:23

标签: javascript jquery jquery-ui jquery-ui-accordion

我正在使用jQuery UI中的Accordion control。手风琴的内容是用JavaScript的用户数据动态生成的,然后在创建之前通过innerHTML属性插入到手风琴中。这种方法有效,但有一个缺点。由于我为所有标签生成HTML,因此产生的手风琴可能有些迟钝。例如,在我的示例中有256个手风琴标签和每个标签的一些广泛的HTML,它在我的旧笔记本电脑上表现得有点慢。

所以我很好奇,为了优化性能,是否有可能在手风琴开启之前将HTML内容附加到手风琴的标签上?还有第二个问题,我可以在标签关闭后立即将其删除吗?

为了提供更多细节,我的手风琴是这样创造的:

$("#accordion").accordion({
    collapsible: true,
    heightStyle: "content",
    active: nActiveTab
});

1 个答案:

答案 0 :(得分:1)

使用beforeActivateactivate方法,如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
}

工作演示:http://jsfiddle.net/ag0gw7cu/