如何在jQuery中获得PrimeFaces pfAjaxStart事件的源元素

How to get the source element of PrimeFaces pfAjaxStart event in jQuery

本文关键字:事件 pfAjaxStart 元素 PrimeFaces jQuery      更新时间:2023-09-26

我有一个pfAjaxStart事件的自定义jQuery事件处理程序。我想注册(或检查内部)这个处理程序,只有来自一个特定的css类元素的事件,例如handle-ajax-start。我怎样才能做到这一点呢?

$(document).on("pfAjaxStart", function(event, xhr, options) {
    /*
     * How to perform this only for events by elements with class handle-ajax-start???
     */
    console.log("Ajax Started...");
});

对于pfAjaxStart,您最接近的赌注是document.activeElement

$(document).on("pfAjaxStart", function(event) {
    var $source = $(document.activeElement);
    // ...
});

考虑到您还指定了xhroptions,它们实际上在pfAjaxStart期间不存在(并且在上面固定),我相信您实际上打算挂钩pfAjaxSend。然后可以通过options.source获得DOM中源元素的ID。这可能比document.activeElement更可靠。

$(document).on("pfAjaxSend", function(event, xhr, options) {
    var $source = $(document.getElementById(options.source));
    // ...
});