Показать сообщение отдельно
  #17 (permalink)  
Старый 14.07.2009, 19:09
Интересующийся
Отправить личное сообщение для walash Посмотреть профиль Найти все сообщения от walash
 
Регистрация: 13.07.2009
Сообщений: 13

function ExtendFunctionality() {
        $.datepicker.constructor.prototype._updateDatepicker = function(inst) {
 
            // когда здесь пишется this, тогда он воспринимается как $.datepicker
 
            ModifyDatePicker(); // OUR CHANGES
        }
    }


при данном раскладе, this рассматривается как window и идет прямиком в код datepicker'a:
function ExtendFunctionality() {

            var oldUpdateDatepicker = $.datepicker.constructor.prototype._updateDatepicker;
            $.datepicker.constructor.prototype._updateDatepicker = function(inst) {
                oldUpdateDatepicker(inst);  //   когда начинает выполнятся код отсюда, то this это уже window
                ModifyDatePicker(); // OUR CHANGES                
            }
        }


Вот что валяется в _updateDatepicker:
/* Generate the date picker content. */
	_updateDatepicker: function(inst) {
		var dims = {width: inst.dpDiv.width() + 4,
			height: inst.dpDiv.height() + 4};
		var self = this;
		inst.dpDiv.empty().append(this._generateHTML(inst))   // первое место, где this уже не тот
			.find('iframe.ui-datepicker-cover').
				css({width: dims.width, height: dims.height})
			.end() . . .  // и т.д. и т.п.
. . . . . . . ..  .. .. . . .. .  .
. . . . . .. . .. . . . .. .
	
	}
Ответить с цитированием