当前位置: 首页 > 面试题库 >

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

松琦
2023-03-14
问题内容

我正在使用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,因此您可以在更新表HTML之前立即在该元素上调用remove()。

这是一个 演示



 类似资料:
  • 问题内容: 我正在尝试创建一个数据表,该数据表在忙时显示一个blockUI,并且我大多数时候都成功了。现在,当我单击两个commandButtons中的任何一个,通过单击标题对数据表进行排序,或在数据表中翻页时,它都会变灰并显示“正在加载…”。您可以在下面查看其代码。 问题是,在我使用了一个commandButtons(在受阻止的元素上运行ajax更新)之后,后续操作不会触发blockUI(直到刷

  • 问题内容: 这个问题是JSF 2中较早的Languageswitcher实现的后续。 尽管PrimeFaces发布了一些较新的版本,但该问题的实质仍然有效,而我的JSF知识比以前更好了。 总而言之,我只有一个xhtml页面,将其完全合并。 语言切换器是这样的: 我希望在 选择时仅 显示标志,反之亦然。我希望使用Resource Bundle翻译来更新网页中的所有内容。 特别是,我有一些S,其标头属

  • 突然,我的作曲家停止了创作。 无论何时运行,它都不会在此之后继续运行: 使用包信息加载composer存储库更新依赖项(包括需要开发) 我尝试了另一个Laravel项目,该项目的作曲家正在工作 我清除了缓存,并运行了这个命令 似乎什么也没发生。我将移动到另一个文件夹,从当前项目中删除并再次运行命令,但没有成功 这是我的文件:

  • 我最近更新了android studio和它的插件,一切正常。但突然发生了这种事,我知道该怎么解决了。应用程序运行了,但出现了一些意想不到的行为。尝试同步gradle,卸载和重新安装更新,但似乎没有任何工作。

  • 问题内容: 我想通过ajax向数据库提交数据,将数据插入数据库后,该数据应最后动态显示在 Demo.html 文件中,即在我的情况下位于div之后。 我已经通过ajax很好地存储了数据,但是我不知道如何将这些新插入的数据显示到 Demo.html 。所以请指导我如何实现此目的。 下面是我的代码。 AjaxFile.html controller.php Demo.html 问题答案: AjaxFi

  • 我们在本地安装了一台新的TFS 2017服务器。我的系统管理员设置了https并生成了自签名证书。使用VisualStudio内置的git工具,一切都可以正常工作。当我尝试从CLI执行任何操作时,会出现以下错误: 我所尝试的: > 经过一些故障排除后,我将本地证书导出为Base-64编码的x.509(.CER)文件,并将其附加到 仔细检查我的git配置以确保http。sslcainfo指向正确的c