有没有办法实现一个通用的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>
谢谢!
答案 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动作的元素,以防万一 这个特殊例子本身。这提供 你有可能将它进一步委托给所需的处理程序 例如检查元素的类。
答案 1 :(得分:0)
使用Primefaces 4.0以后,jquery .ajaxComplete函数将替换为自己的Pf方法。这是代码;
$(document).on('pfAjaxComplete', function(e, xhr, settings) {
alert("An ajax request has been completed!");
//other stuff
});