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

素面 在另一个Ajax请求后不会消失

公冶兴文
2023-03-14
问题内容

假设我有一些工具提示<p:dataTable>。当我更改dataTable另一页的页面时,我将鼠标移到任何工具提示上-
它会显示,但是在另一页加载后,工具提示永远不会消失。.我尝试使用进行更新p:ajaxp:remoteCommand但实际上没有任何帮助这提出了另一个Ajax要求,并且工具提示也卡住了。仅整页重新加载F5有效。

有没有人遇到过这样的问题?非常感谢你的帮助!


问题答案:

这看起来像是PrimeFaces错误,但是您可以通过JS隐藏有关分页事件的工具提示来解决此问题。

<p:dataTable value="#{bean.val}" var="row" rowIndexVar="rowIndex" rows="10" paginator="true">
    <p:ajax event="page" oncomplete="hideTooltips();" />

    <p:column>
        <h:outputText id="text" value="#{row}" />
        <!--
            since p:tooltip is located inside an iterative component (p:dataTable), we can't
            just define a static widgetVar value, because there will be a widget instance for
            each iteration, and each instance must have a unique widgetVar value, so we'll
            use rowIndex to achieve that
        -->
        <p:tooltip widgetVar="textTipVar#{rowIndex}" for="text" value="Tip" />
    </p:column>
</p:dataTable>
<script>
    function hideTooltips() {
        /*
            we've defined a bunch of widgetVars with a dynamic name, so we'll iterate over
            all widgets on the page and find the ones we need by looking for a known
            widgetVar prefix
        */
        for (var w in PrimeFaces.widgets) {
            if (w.indexOf('textTipVar') === 0) {
                PrimeFaces.widgets[w]._hide();
            }
        }
    }
</script>

这使用了未记录的Tooltip小部件方法_hide,在更新到另一个PrimeFaces版本时,请记住这一点,例如,方法名称可能会更改。该PrimeFaces.widgets对象也未记录。



 类似资料:
  • 我尽力描述我的处境。我的wicket站点包含list wicket组件,其中每个列表元素都有另一个列表。最低级别列表中的每个元素都有下载某个文件的ajax wicket链接。这一切都很好。我习惯了这种懒散的行为。此行为的方法startDownload在link onClick方法中调用。

  • 问题内容: 基于:使用jQuery中止Ajax请求 …在stock_search()中-在发出ajax请求之前,如何在发出新请求之前检查当前的任何请求并中止()?还是…有更好的方法吗? 问题答案: 创建所有请求的数组队列。然后,如果找到需要中止所有现有请求的位置,则可以遍历数组并在所有未决请求上调用中止。应该很简单。 尽管另一种方法是只保留一个内部标志,该标志指示当前是否正在处理一个请求,如果有请

  • 问题内容: 好的,我有一个仅包含的简单表格。当我们点击submit(通过ajax存储)时,在文本字段中写入的数据将存储在DB中。Ajax可以正常工作并提交数据,但是,页面会自动刷新,并且URL包含输入字段的内容。 我的表格: 阿贾克斯:- PHP的:- 结果显示在后,页面将刷新,URL变为: -chat.php?message = 454545&submit_message = 为什么要刷新页面?

  • 问题内容: 我在我的网站上做了一些非常基本的jQuery ajax的工作,并且遇到了很多麻烦。 以下是相关代码: 该页面是通过HTTPS加载的,但是XMLHttpRequests似乎是通过HTTP输出的。 我甚至尝试将URL更改为绝对URL(https://larsendt.com/jsontest/randomdata),它 仍然 将请求发送到我的站点的HTTP版本。 自然,由于请求将转到其他协

  • 我正在构建一个小型聊天应用程序,以了解一些有关jquery和Ajax的知识。它工作得很好,但目前chatbox正在以以下代码在一个间隔内抓取log.HTML的HTML: 现在,如果用户试图复制一行,它将退出,因为html每隔几秒钟就会刷新一次。因此,我希望构建一个检查来记住最后一条已知消息,并将其与日志中的最后一条消息进行比较。如果它们不匹配(出现了一条新消息),只有这样浏览器才会刷新聊天框中的h

  • 问题内容: 我同时运行两个AJAX请求时遇到问题。我有一个PHP脚本正在将数据导出到XSLX。此操作需要很多时间,因此我尝试向用户显示进度。我正在使用AJAX和数据库方法。实际上,我非常确定它曾经可以工作,但是我不知道为什么,它不再在任何浏览器中都能工作。新浏览器有什么变化吗? 在数据库中正确更新进度 JS计时器正在尝试获取进度,我可以在控制台中看到它,但是所有这些请求都加载第一个脚本的整个持续时