2009-08-19 83 views
6

我已经有了手风琴在页面加载上工作正常,但是当用户与页面上的某些元素交互时,我使用ajax来重建手风琴的HTML。然后,我尝试重新初始化手风琴在回调中重新初始化jquery手风琴

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

但它似乎没有采取。

呈现的HTML块没有应用手风琴规则。相反,它只是一个大列表。

我甚至尝试setTimeout()重新调用手风琴,只是在回调中返回呈现的HTML之前尝试初始化它。

即在回调呈现的HTML是确切的相同的页面加载(有例外当手风琴方法是有效发生的DOM加法)

回答

14

与数据再植之前销毁手风琴。

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

谢谢,修正了它。对此,我真的非常感激。 – aimlessWonderer 2009-08-21 14:33:34

+2

没问题。我对对话UI组件有完全相同的问题,并且修复是相同的。您必须明确地销毁jquery-ui中的所有内容(现在),以使组件处于良好状态。这应该记录在某个地方! – 2009-08-21 15:17:16