使jQuery Growl插件消息不淡出

问题描述 投票:1回答:3

我正在使用jQuery Growl插件向我的网站中的用户通知消息,我的消息displayTimeout是3500,我的问题是一些通知消息需要在displayTimeout之后淡出,但有些需要保持静态,直到我将其删除。我的问题是我如何让我的通知留下而不是淡出?谢谢

javascript jquery web growl
3个回答
1
投票

在jquery.growl.js文件中只需注释这行代码:

if ($.growl.settings.displayTimeout > 0) {
        setTimeout(function(){
            jQuery.growl.settings.noticeRemove(notice, function(){
                notice.remove();
            });
        }, jQuery.growl.settings.displayTimeout);
    }

1
投票

这个循环负责显示和淡化..你可以编辑代码..

Growl.prototype.cycle = function() {
    var $growl;
    $growl = this.$growl();
    console.log(this.settings.duration);
    return enter code here$growl.queue(this.present).delay(this.settings.duration).queue(this.dismiss).queue(this.remove);
    };

让它像这样..

Growl.prototype.cycle = function() {
      var $growl;
      $growl = this.$growl();
      console.log(this.settings.duration);
      if(this.settings.duration==0){
            return $growl.queue(this.present);
      }else{
            return $growl.queue(this.present).delay(this.settings.duration).queue(this.dismiss).queue(this.remove);
      }
    };

所以,如果你像这样初始化..

$.growl({
                title: "Saving",
                style: "primary",
                message: 'Please wait...',
                duration: 0
            });

它不会淡出..你可能想用“解雇”手动淡化它


0
投票

我通过使用Growl.settings.duration = duration来解决它;

我创建的功能:

function woobe_message(text, type, duration = 0) {
    jQuery('.growl').hide();
    if (duration > 0) {
        Growl.settings.duration = duration;
    }
    switch (type) {
        case 'notice':
            jQuery.growl.notice({message: text});
            break;

        case 'warning':
            jQuery.growl.warning({message: text});
            break;

        case 'clean':
            //clean
            break;

        default:
            jQuery.growl({title: '', message: text});
            break;
}

}
© www.soinside.com 2019 - 2024. All rights reserved.