使用 jquery 选择器检测 pnotify 的显示或加载

Detect display or loading of pnotify with a jquery selector

我正在为使用 pnotify 1.2.0 版的应用程序编写扩展。核心应用程序创建一个 pnotfy 警报,我希望我的代码对该警报的创建做出反应。这是一个专有的扩展框架,它允许我添加自己的 JS,并且在加载主应用程序自己的 JS 之后加载该 JS。该扩展模型的相关性仅在于它意味着我不能只做一些理智的事情,比如修改原始调用代码;我必须对次要事件做出反应。

我试过使用 jquery 和这样的加载事件:

$('div.ui-pnotify-text').on('load', function() {
    console.log('detected pnotify creation, doing stuff...');
});

我试过以下选择器:

这些选择器在 pnotify 气泡弹出后起作用,但加载事件似乎没有触发。我怀疑我使用了错误的选择器或者我误解了 jQuery 事件模型。

我还查看了 pnotify_remove_all 方法,该方法表明我可以使用 $(window).data("pnotify") 获取所有活动 pnotify 对象的列表。与选择器一样,这在所有内容都已加载后在浏览器控制台中工作,但不是来自 JS 代码。

如何使用 jquery 可靠地检测 pnotify 气泡的创建?

如果不是jquery,有没有我可以使用的内置 pnotify 机制?

我做了一些额外的实验。我根本不认为这是可能的。 pnotify 元素和 类 的选择器的各种组合可以找到这些元素,但是当它们呈现或可见时,没有为加载、显示或隐藏触发的事件。

var notice = new PNotify({
     title: 'Mesaj',
     text: '<p>' + item.Message + '</p>',
     hide: false,
     width: '220px',
     addclass: "notice_" + item.Id,
     type: 'success'
});

当 pnotify 处于活动状态时,您可以使用以下代码访问它。给addclass取个名字给自己起个名字就可以找到弹窗消息了

if ($(".notice_" + item.Id).length == 0) {
 ...
}
 

我的英语不是很好。对不起。希望我没有弄错问题。