0

jQuery Mobile (1.3.0) で jQuery (1.9.1) を使用しています。JQM の Reflow テーブルに問題があります。AJAX でスクリプトから JSON データを取得してテーブルに行を追加すると、更新をトリガーしてテーブルを作成した後、リフロー テーブルの見出しが生成されません。これが私のコードです:

HTML/PHP

'<table data-role="table" id="itemTable" data-mode="reflow" class="ui-responsive table-stroke" style="display:table;">' .
    '<thead>' .
        '<tr>' .
            '<th data-priority="1">Location</th>' .
            '<th>Name</th>' .
            '<th data-priority="3">Barcode</th>' .
            '<th data-priority="4">Needed</th>' .
            '<th data-priority="5">Scanned</th>' .
        '</tr>' .
    '</thead>' .
    '<tbody>' .
        $tableData .
    '</tbody>' .
'</table>' .

JavaScript

$('.getOrder, .getStoreOrder').on('vclick', function(e) {
    e.preventDefault();
    var sel =   this;
    var theLink =   $(this).attr('href');
    if (activeOrder === true) {
        return false;
    }
    $.ajax({
        url: 'ajax.php',
        data: {
            pa: ($(sel).hasClass('getStoreOrder') ? 'store' : '') + 'order'
        },
        dataType: 'json',
        beforeSend: function() {
            $.mobile.showPageLoadingMsg();
            $('#itemTable tbody').html('');
            $('#leftPanel ul li').not(':first-child').remove();
        },
        success: function(data) {
            testVar =   data;
            var i;
            for (i=0; i <= data.length -1; i++) {

                $('#itemTable tbody').append(   '' +
                    '<tr id="item' + (i+1) + '">' +
                        '<td><span>' + data[i].Location + '</span></td>' +
                        '<td><a onclick="showImageOverlay(\'' + data[i].Image + '\');">' + data[i].Name + '</a></td>' +
                        '<td>' + data[i].Barcode + '</td>' +
                        '<td>' + data[i].Qty + '</td>' +
                        '<td>0</td>' +
                    '</tr>' +
                '');
                $('#leftPanel ul').append(  '' +
                    '<li>' +
                        '<a href="#item' + (i+1) + '" class="itemLink" onclick="changeItem(\'item' + (i+1) + '\')">' +
                            'Item ' + (i+1) +
                        '</a>' +
                    '</li>' +
                '');
            }
            $('#itemTable').trigger('refresh');
            $('#itemTable').trigger('create');
            $('#leftPanel #leftUl').listview('refresh');
        },
        complete: function() {
            $('#rightPanel', '.ui-page-active').panel('close');
            $.mobile.hidePageLoadingMsg();
            //pageChange(theLink);
        }
    });
});

AJAX成功し、希望どおりに行をテーブルに追加します。私の質問は、JQM をトリガーしてリフロー列名を追加する方法です。

<b class="ui-table-cell-label">Column Name</b>行の追加に使用して列名を追加できることはわかっていますが、動的に実行したいので、HTML を変更するときに jQuery を変更する必要はありません。

ありがとうございました。

4

2 に答える 2