【问题标题】:Pnotify and fullcalendarPnotify 和全日历
【发布时间】:2015-05-05 06:05:51
【问题描述】:

我正在使用 pnotify 和加载回调函数来在 fullcalendar 插件加载所有事件时显示通知。

loading:function(isLoading, view){

    if (isLoading === false){
        new PNotify({
            title:"Finished loading events",
            type:'success',
            delay: 1000
        });

我的问题是,当我移动到不同的日期时,它会再次调用加载,所以我的屏幕上显示了如此多的通知,以至于它变得非常无法使用。我怎样才能绕过这个?有没有办法检查通知是否处于活动状态,只需更改其文本和标题?

【问题讨论】:

    标签: fullcalendar pnotify


    【解决方案1】:

    您可以根据正在使用的模板 (check the template docs) 添加该逻辑。

    您的代码将类似于

    loading:function(isLoading, view){
        var exists = false;
        $(".ui-pnotify-title").each(function() {
            if ($(this).html() == 'Finished loading events')
                exists = true;
        });
    
        if (!exists) {
            new PNotify({
                title:"Finished loading events",
                type:'success',
                delay: 1000
            });
        }
    }
    

    如果您可以使用特定的 id 或类来检测通知是否已显示,那就更好了,但这可行。

    看看the working jsfiddle

    【讨论】:

    • 嗯,是的,但这不会改变逻辑?如果我更改视图并发生重新加载事件,如果我已经显示通知,则通知可能会显示已完成加载事件,而 fullcalendar 正在加载新事件。它应该只是更改文本或删除旧文本并显示新文本(甚至更好)。我真正想要的是显示两个通知,一个用于开始加载(isLoading == true),一个用于完成(isLoading==false),但出现太多通知的问题是一个缺点。也许总是显示这个太累了。添加微调器可能会更好
    • 我会坚持使用微调器,因为它对用户的干扰也较小(从用户体验的角度来看)。如果你想显示两个通知,你只需要修改我提供的代码以满足你的需要。
    • 我也是这么想的,我想我会选择微调器。
    【解决方案2】:

    您可以将其存储在变量中,执行必要的代码(如可空/未定义检查等)并调用“update()”(此处:http://sciactive.com/pnotify/ - 例如,查找“点击通知”并查看来源)

    var p = new PNotify({
        title: 'Some title',
        text: 'Check me out! I\'m a error.',
        type: 'error',
        icon: 'fa fa-times-circle'          
    });
    // ... code ...
    p.update({title: 'My new title'});
    

    【讨论】:

      猜你喜欢
      • 2015-10-27
      • 2012-12-13
      • 2021-04-20
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 2023-03-19
      相关资源
      最近更新 更多