实现一般的ajax方法

时间:2014-08-13 12:12:33

标签: javascript ajax jsf primefaces

有没有办法实现一个通用的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> 

谢谢!

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

使用Primefaces 4.0以后,jquery .ajaxComplete函数将替换为自己的Pf方法。这是代码;

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