在回调时重新初始化jquery手风琴

aim*_*rer 6 jquery rendering callback accordion

我的手风琴在页面加载方面工作正常,但是当用户与页面上的某些元素交互时,我使用ajax来重建手风琴的HTML.然后,我尝试再次重新初始化手风琴

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

但是......它似乎没有采取.

新呈现的HTML块未应用手风琴规则.相反,它只是作为一个大型列表保持开放.

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

在回调中呈现的HTML与页面加载的HTML完全相同(除了在Accordion方法生效时发生的DOM添加)

Ste*_*all 14

在用数据重新填充之前销毁该手风琴.

$('#accordion').accordion('destroy');
Run Code Online (Sandbox Code Playgroud)

  • 没问题.对话框UI组件我遇到了完全相同的问题,修复方法也是一样的.你必须在jquery-ui中显式地销毁所有东西(现在)以使组件处于良好状态.这应该在某处记录! (2认同)