动态添加的内容不再打开手风琴

我有一个在模态窗口内打开的手风琴。 手风琴不再有效,因为我现在正在动态创建模态的内容,之前,数据在我的HTML中进行了硬编码,所以一切都按预期运行。

这就是我现在用于AJAX调用的内容:

... success : function(data) { $('
', { id:'modal' }).html(data).appendTo('body'); $('#modal').popup({ autoopen : true, }); },

这是对手风琴的呼吁:

 $('.accordion').accordion({ collapsible: true }); 

模态窗口没有问题,但手风琴不会折叠或打开。 我还可以看到没有与手风琴有关的事件,在变化之前,有。

因为我的模态的内容现在是动态创建的,有没有办法让手风琴再次运转?

每次进行编辑时都必须刷​​新手风琴。

 $('.accordion').accordion("refresh"); 

这可能是因为当你做$(’。accordion’)。accordion({…,你没有“.accordion”类,因为AJAX还没有完成,你在非现有的类上设置了accordion。它与jquery中的click事件类似。快速的解决方法是在AJAX的“成功”function中设置您的手风琴。像这样:

 success : function(data) { $('
', { id:'modal' }).html(data).appendTo('body'); $('.accordion').accordion({ collapsible: true }); $('#modal').popup({ autoopen : true, }); },

或者像Eddie说的那样,你可以使用$(’。accordion’)。accordion(“refresh”);,喜欢这个:

 success : function(data) { $('
', { id:'modal' }).html(data).appendTo('body'); $('.accordion').accordion("refresh"); $('#modal').popup({ autoopen : true, }); },

把它放在html(数据)之后很重要.appendTo(’body’);. 我希望我能帮助理解这个问题。