使jQuery Growl插件消息不淡出

时间:2012-09-24 10:46:10

标签: javascript jquery web growl

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分: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
            });

它不会消失..您可能想要使用" dismiss"

手动淡化它

答案 2 :(得分: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;
}

}