gpt4 book ai didi

JQuery Mobile 通过 AJAX 更新表和列切换停止工作

转载 作者:行者123 更新时间:2023-12-01 06:34:08 28 4
gpt4 key购买 nike

我正在使用 JQM 1.4.2 创建一个小型应用程序,但在使用 ajax 更新表格而不刷新页面时遇到了问题。这运作良好,我的表格(整个表格)已更新,但更新后 data-mode='columntoggle' 不再起作用 - 按钮在那里,但您为显示列所做的任何选择不再起作用完全有效。

有人能想到为什么会发生这种情况吗?代码如下:

主页

            <div data-role="content" data-theme="a" >   
<div id='visualUnitTable'>
<!-- list loads dynamically - popup & jquery at bottom of page -->

</div>

<!------------------POPUP------------------- -->
<div data-role='popup' id='popupVisualUnit' data-theme='a' data-overlay-theme='a' data-dismissible='false' style='min-width: 300px;'>
<div data-role='header' data-theme='a'>
<h1>Visual Check</h1>
</div>
<div data-role='main' class='ui-content'>
<form id='frmVisualUnit'>
<!--using ajax to create the form-->

</form>
</div>
</div>

</div><!-- /content -->

表格页面(为了便于阅读,我从这里删除了一些 php 内容!!):

<table data-role='table' id='visualUnitListTable' data-mode='columntoggle' class='ui-body-b ui-shadow table-stripe ui-responsive' data-column-btn-mini='true' data-column-btn-text='Columns to Display' data-column-btn-theme='c' data-column-popup-theme='a' >
<thead>
<tr>
<th data-priority='1'>Unit No.</th>
<th data-priority='1'>Size Code</th>
<th data-priority='2'>Size</th>
<th data-priority='3'>Week Rate</th>
<th data-priority='3'>Month Rate</th>
<th data-priority='2'>Overlocked</th>
<th data-priority='2'>Visual Check</th>
<th data-priority='1'>Status</th>
<th></th>
</tr>
</thead>
<tbody>
echo"<tr>
<td><a href='./unit_Details.php?unitid=" . $row['unitid'] . "'>" . $row['unitno'] . "</a></td>
<td>" . $row['sizecode'] . "</td>
<td>" . $row['usize'] . "</td>
<td>" . $row['wrate'] . "</td>
<td>" . $row['mrate'] . "</td>
<td>" . $row['overlocked'] . "</td>
<td>" . $row['visual'] . "</td>
<td>" . $row['description'] . "</td>
<td><div id='custom-border-radius'><a onclick= DisplayVisualCheckPopUP('" . $row ['unitid'] ."') class='ui-btn ui-icon-edit ui-btn-icon-notext ui-corner-all' data-rel='popup' data-position-to='window' data-transition='pop'>" . $row['unitno'] . "</a></div></td>
</tr>
</tbody>
</table>

单击编辑按钮打开一个弹出窗口,当您关闭该弹出窗口时,会使用更新的信息重写表格。ajax 重新加载表格而不刷新整个页面:

      function LoadVisualUnitTable() {
$.post('unit_DisplayVisualTable.php', 'unitSearchBox=<?php echo $_POST ['unitSearchBox'];?>&choiceUnitSearch=<?php echo $_POST ['choiceUnitSearch'];?>&choiceDeletedUnit=<?php echo $_POST ['choiceDeletedUnit'];?>&selectSiteUnit=<?php echo $_POST ['selectSiteUnit'];?>&choiceUnitSearchCri=<?php echo $_POST ['choiceUnitSearchCri'];?>&selectUnitStatus=<?php echo $_POST ['selectUnitStatus'];?>&sid=RI201310111345581600', function(data) {
$("#visualUnitTable").html(data); //<!-- load data to div -->
$("#visualUnitTable").trigger('create'); //<!-- load data to css -->
});
return false;
};

我在想也许我需要逐行重新加载 - 对此有什么想法吗?否则任何想法将不胜感激!谢谢

最佳答案

看起来 jQM 保留了弹出窗口,其中包含第一次加载表时的列列表,因此在后续加载之后,它不会重新创建列表。可能有一种更“官方”的方法来做到这一点,但一个快速的解决方法是每次刷新表时从 DOM 中删除动态弹出窗口:

$("#visualUnitListTable-popup-popup").remove();        
$("#visualUnitTable").html(data).enhanceWithin();

给定您的表 ID 为 visualUnitListTable,jQM 将创建一个 ID 为 visualUnitListTable-popup-popup 的弹出窗口,因此您可以在该元素之前调用 remove()更新表格 HTML。

Here is a DEMO

关于JQuery Mobile 通过 AJAX 更新表和列切换停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23761771/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com