2009-08-19 25 views
6

Tôi đã có accordion làm việc tốt trên pageload, tuy nhiên khi người dùng tương tác với một số yếu tố trên trang, tôi đang sử dụng ajax để xây dựng lại HTML của accordion. Sau đó, tôi cố gắng khởi tạo lại accordion một lần nữa vớire-initialize jquery accordion trên gọi lại

$('#accordion').accordion({ 
     active: false, 
     autoHeight: false, 
     clearStyle: true, 
     collapsible: true, 
     header: 'h3' 
    }); 

nhưng ... dường như không được thực hiện.

Khối mới của HTML được hiển thị không áp dụng các quy tắc accordion. Thay vào đó nó chỉ mở ra như một danh sách lớn.

Tôi thậm chí đã thử setTimeout() để gọi lại accordion chỉ trong trường hợp nó đang cố gắng khởi tạo trước khi kết xuất HTML được trả về trong cuộc gọi lại.

HTML được trả lại trong callback là chính xác giống như của các pageload (với ngoại lệ đối với những bổ sung DOM xảy ra khi các phương pháp Accordion có hiệu quả)

Trả lời

14

Phá hủy accordian trước repopulating nó với dữ liệu.

$('#accordion').accordion('destroy'); 
+0

cảm ơn, đã sửa nó. Tôi rất trân trọng điều này. – aimlessWonderer

+2

Không sao cả. Tôi đã có cùng một vấn đề chính xác với thành phần UI hộp thoại, và sửa chữa là như nhau. Bạn phải phá hủy rõ ràng mọi thứ (bây giờ) trong jquery-ui để có được các thành phần ở trạng thái tốt. Điều này nên được ghi lại ở đâu đó! –

Các vấn đề liên quan