【问题标题】:implement a general ajax method实现一个通用的ajax方法
【发布时间】:2014-08-13 12:12:33
【问题描述】:

有没有办法实现一个通用的 ajax 方法,它将为我页面中的每个链接执行?

我的意思是执行一个像 checkCarousel() 这样的 js 函数,但不需要在我的项目中的每个链接的“oncomplete”ajax 属性上定义它

<p:commandLink action="#{someBean.active}" 
      update="@all" oncomplete="checkCarousel();" >
      <img width="70" src="resources/images/logo.png"                          
         alt="LOGO" style="border: none;"/>
 </p:commandLink> 

谢谢!

【问题讨论】:

    标签: javascript ajax jsf primefaces


    【解决方案1】:

    这是一个简单的 Google 搜索结果:

    PrimeFaces 使用 jQuery 来处理 ajax 请求。所以,最好的办法是挂上通用的 $.ajaxComplete() 处理程序。

    $(document).ajaxComplete(function(event, xhr, options) {
        var $source = $("[id='" + options.source + "']");
    
        if ($source.hasClass("myCommandButton")) {
            // ...
        }
    });
    

    $source 代表原始 HTML DOM 的 jQuery 对象 触发 ajax 操作的元素,以防万一 这个特殊的例子本身。这提供 您可以通过以下方式将其进一步委托给所需的处理程序 例如检查元素的类。

    Source

    【讨论】:

    • 谢谢!试过但没有奏效,并做了一些研究......这是在以前版本的 PF 中执行此操作的方法,我相信在 PF 4.0 之后,这已被弃用。下面贴出正确答案
    【解决方案2】:

    从 Primefaces 4.0 开始,jquery .ajaxComplete 函数被替换为自己的 Pf 方法。这是代码;

    $(document).on('pfAjaxComplete', function(e, xhr, settings) {
            alert("An ajax request has been completed!");
            //other stuff
    }); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-18
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      相关资源
      最近更新 更多