首页 > 解决方案 > 使用 jquery 选择器检测 pnotify 的显示或加载

问题描述

我正在为使用 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 机制?

标签: jquerypnotify

解决方案


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) {
 ...
}
 

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


推荐阅读