【问题标题】:jQuery UI accordion not working when data is refreshed刷新数据时jQuery UI手风琴不起作用
【发布时间】:2015-08-11 09:13:42
【问题描述】:

我有一个 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。有谁知道如何解决这个问题?谢谢!!

【问题讨论】:

    标签: javascript jquery html jquery-ui


    【解决方案1】:

    在再次创建手风琴之前,您是否尝试过在手风琴上调用destroy?

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

    发现于api docs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多