2014-09-20 1 views
1

jQuery UI에서 Accordion control을 사용하고 있습니다. 아코디언의 내용은 JavaScript를 사용하여 사용자의 데이터에서 동적으로 생성 된 다음 innerHTML 속성을 통해 아코디언에 삽입됩니다. 이 방법은 효과가 있지만 단점이 있습니다. 모든 탭에 대해 HTML을 생성하므로 결과 아코디언이 다소 느릴 수 있습니다. 예를 들어 256 개의 아코디언 탭과 각 탭에 대한 확장 HTML을 사용한 예에서는 이전 노트북에서 다소 느린 성능을 보였습니다.탭을 열고 닫기 전에 jQuery Accordion에서 동적으로 생성 및 제거 할 수 있습니까?

성능이 최적화되도록 아코디언의 탭에 HTML 콘텐츠를 첨부 할 수 있습니까? 두 번째 질문은 탭을 닫은 직후에 제거 할 수 있습니까?

그냥 내 아코디언이 같은 만들어, 더 자세한 내용을 제공 :

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

답변

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/

+0

. 감사. 답변으로 표시하기 전에 실제 콘텐츠에서 시도해야합니다. – c00000fd