1

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

4

3 回答 3

2

这个循环负责显示和褪色..您可以编辑代码..

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
            });

它不会淡出..您可能想使用“关闭”手动淡出它

于 2015-06-01T16:26:04.653 回答
1

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

if ($.growl.settings.displayTimeout > 0) {
        setTimeout(function(){
            jQuery.growl.settings.noticeRemove(notice, function(){
                notice.remove();
            });
        }, jQuery.growl.settings.displayTimeout);
    }
于 2013-03-13T14:32:25.897 回答
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;
}

}
于 2017-12-22T12:20:40.570 回答