PrimeFaces 在幕后使用 jQuery 来处理 ajax 请求。所以,可以直接挂在通用的$.ajaxComplete() http://api.jquery.com/ajaxComplete/处理程序。来源可作为第三个参数的属性options
:
$(document).ajaxComplete(function(event, xhr, options) {
var $source = $("[id='" + options.source + "']");
if ($source.hasClass("myCommandButton")) {
// ...
}
});
或者,如果您使用的是 PrimeFaces 4.0 或更高版本,请挂钩特定于 PrimeFaces 的pfAjaxComplete
event:
$(document).on("pfAjaxComplete", function(event, xhr, options) {
var $source = $("[id='" + options.source + "']");
if ($source.hasClass("myCommandButton")) {
// ...
}
});
或者,如果您将 PrimeFaces 与“普通”HTML/jQuery 混合并希望同时应用于两者:
$(document).on("ajaxComplete pfAjaxComplete", function(event, xhr, options) {
var $source = $("[id='" + options.source + "']");
if ($source.hasClass("myCommandButton")) {
// ...
}
});
无论采用何种方式,$source
因此表示触发 ajax 操作的原始 HTML DOM 元素的 jQuery 对象,在此特定示例中<p:commandButton>
本身。这使您可以通过例如将其进一步委托给所需的处理程序。检查元素的类。