【问题标题】:jquery accordion broken after partial ajax page reload部分ajax页面重新加载后jquery手风琴损坏
【发布时间】:2012-02-27 01:18:24
【问题描述】:

我正在使用 jquery 手风琴,它在初始页面加载时工作正常,但是我有一些 ajax 命令重新加载页面的一部分,基本上是页面的内部主体。

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

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

替换整个页面的 innerHTML 后如何保持(或重新调用)手风琴效果?

<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>           

这是通过将 div 的 innerHTML 设置为 id=ajaxWrapper 来完全取代的艺术。

我相信你看到了问题。

【问题讨论】:

    标签: javascript jquery ajax jquery-ui jquery-ui-accordion


    【解决方案1】:

    将jquery手风琴函数放在.ajax请求的成功回调中:

    例子:

    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/

    【讨论】:

    • 谢谢!不明白我怎么会错过=)
    【解决方案2】:

    使用 $( ".selector" ).accordion( "refresh" );

    【讨论】:

    • 这确实有效。为什么一个人都能写出难写的脚本呢?非常感谢
    • 也解决了我的问题!更多信息:api.jqueryui.com/accordion
    • 成功了!谢谢!
    猜你喜欢
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多