刷新数据时jQuery UI手风琴无法正常工作

时间:2015-08-11 09:13:42

标签: javascript jquery html jquery-ui

我有一个HTML页面,其中数据被动态加载到手风琴中。手风琴调用是从函数内部发生的。定期调用此函数以刷新数据。手风琴第一次正确显示,但在数据刷新时被破坏。以下是一些相关代码:

HTML:

...

    <div id="itemsList"></div>

...

JavaScript的:

function updateList() {
    var storedStates = startSpinner(spinner, 'itemsList');

    $.post('interface/getitemss.php', 
        function(data) {

            var dataObj = $.parseJSON(data);

            if(dataObj.status == 0) {
                var itemDetails = dataObj['data'];

                $("#itemsList").html("");
                var infoLevel = getInfoLevel();

                for (var i = 0; i < itemsDetails.length; i++) {

                    var rowContent = "<h3>";
                    if (item.type == 3 && item.approvals > 0) {
                        rowContent += "<span class='" + qaprColor + "'>";
                        rowContent += "<i class='icon-bell'></i>" + space + item.approvals + "</span>" + pipespace;
                    }
                    ...
                    rowContent += "</div>";
                    $("#itemsList").append(rowContent);
                } 
                $("#itemsList").accordion();

在代码中,我正在使用它:

var intervalTimer = setInterval(function() {updateList();}, <?php echo $interval; ?>);

这定期调用updateList()方法来更新数据。问题是,在调用此方法的那一刻,以前工作的手风琴被破坏,数据就像普通的HTML一样出现。有谁知道如何解决这个问题?谢谢!

1 个答案:

答案 0 :(得分:0)

你是否曾尝试在再次创建手风琴之前调用destroy?

$("#itemsList").accordion( "destroy" );
$("#itemsList").accordion();

api docs

中找到