首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >部分ajax页面重新加载后,jquery accordion中断

部分ajax页面重新加载后,jquery accordion中断
EN

Stack Overflow用户
提问于 2012-02-05 06:47:47
回答 2查看 4.8K关注 0票数 2

我正在使用jquery accordion,它在初始页面加载时工作得很好,但随后我使用了一些ajax命令来重新加载页面的一部分,实际上是页面的内部。

当发生这种情况时,accordion就被破坏了,因为我所做的重载只是替换了几乎整个body字段的innerHTML。

加载accordion的脚本也包含在替换的HTML中,但这显然没有帮助。

如何在替换整个页面的innerHTML后保留(或重新调用)折叠效果?

代码语言:javascript
运行
复制
<div class="art-Post-inner" id="ajaxWrapper">
        <div id="accordion">
                <h3><a href="#">Skärm 1</a></h3>
                <div>
                    my accordion content
                </div>
        </div>

        <script>

            $(document).ready(function() {
                $( '#accordion' ).accordion({
                    collapsible: true, active: false, autoHeight: false
                });
            });

        </script>           

这是一种通过用id=ajaxWrapper设置div的innerHTML而被完全取代的艺术。

我相信你看到了问题所在。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-05 09:50:52

将jquery折叠函数放入.ajax请求的成功回调中:

示例:

代码语言:javascript
运行
复制
var accordionOpts = {
    collapsible: "true",
    active: "false",
    autoHeight: "false"
    };

$('#accordion').accordion(accordionOpts);

$("#replaceContent").click(function() {
    $.ajax({
        type: 'POST',
        cache: false,
        data: {
            html: "<div id='accordion'><h3><a href='#'>Skärm 2</a></h3><div>my accordion content</div></div>"
        },
        url: '/echo/html/',
        success: function(data) {
            $(".art-Post-inner").html(data);
            $('#accordion').accordion(accordionOpts);
        }
    });
});

小提琴:http://jsfiddle.net/6Scgc/3/

票数 1
EN

Stack Overflow用户

发布于 2015-03-28 21:11:11

使用$( ".selector“).accordion(”刷新“);

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9145313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档