Показать сообщение отдельно
  #21 (permalink)  
Старый 06.08.2010, 06:11
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

как можно делать замечания, если не хочеться вникать в этот код? (смайлик как у Octane) И при чем тут замена alert'а?

кстати, Octane, ты как-то абстрактно, имхо, подошел к вынесению функциональности. Т.е. я в первую очередь исхожу из того, как что-то будет использоваться. Selection.get() выглядит симпатичнее по сравнению с $Range.stringify($Selection.getRange()). Может, твой вариант чем-то лучше, но я пока не вижу чем. Он сложнее

и все-таки лучше отменять скрытие панели, а то оно может скрыть панель для нового выделения
Function.prototype.makeCancelable = function(){
    var self = this;
    var r = function(){
        if( r.canceled )
            return;
        return self.apply(this, arguments);
    };
    r.cancel = function(){
        this.canceled = true;
    }
    return r;
}

var QuotePanel = new Class({  
    _onMouseUp_body: function( e ){  
        ... 
        this._panel  
            ... 
            .animate( 
                { ... }, 
                { 
                    'complete': function(){ 
                        this._hidePanelCancelable = this._hidePanel().of(this).makeCancelable();
                        setTimeout( this._hidePanelCancelable, 3000 ); 
                    }.of(this) 
                }); 
    }, 
        
    _onClick_body: function( e ){  
        ... 
        if( this._hidePanelCancelable )
            this._hidePanelCancelable.cancel();
        this._hidePanel(); 
    },  
  
    _hidePanel: function(){ 
        this._panel.css('display', ''); 
    } 
});
Ответить с цитированием