Jquery手风琴 - 通过ajax加载第一个活动面板

时间:2015-12-06 21:44:43

标签: jquery ajax accordion

我正在通过以下方式做一个jQuery手风琴:

$(document).ready(
    function () {
        $("#gallery-preview").accordion({ header: "h2",          
                animate: 400,
                heightStyle: "content",
                active: 1,
                alwaysOpen: false,
                fillspace: false,
                collapsible: true,
                activate: function (e, ui) {
                $url = $(ui.newHeader[0]).children('a').attr('href');
                $.get($url, function (data) {
                    $(ui.newHeader[0]).next().html(data);
                });
            }

        });
    });

通过Ajax加载内容。

但我有两个问题:

1)在手风琴关闭并再次打开之前,活动手风琴不会加载内容。有没有办法为最初的第一个(主动)手风琴加载内容?

2)如何在关闭和重新打开后不会再次加载已经通过Ajax加载的手风琴选项卡?

1 个答案:

答案 0 :(得分:0)

我不确定我完全理解这个问题,但我会尽力帮助你。我认为你看到的主要问题是你在激活中运行AJAX和其他东西,每次激活手风琴时都会运行,但不会在初始创建时运行。尝试将'激活'替换为'创建',看看是否有效。如果我正确地理解了你的问题,这应该既可以在创建时加载,也可以在关闭/打开后加载,并且每次都应该停止选项卡内容重新加载,因为创建只会在创建时触发。请参阅激活部分下面的黄色注释:

https://api.jqueryui.com/accordion/#event-activate

祝你好运!