Javascript.RU

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

Не знаю, у меня прокатило и работает
function ExtendFunctionality() {
        $.datepicker.constructor.prototype._updateDatepicker = function(inst) {
            
            // code from date picker

            ModifyDatePicker(); // OUR CHANGES
        }
    }


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

персанальное спасибо x-yuri за:

var oldGenerateHTML = $.datepicker.constructor.prototype._generateHTML;
$.datepicker.constructor.prototype._generateHTML = function(){
    oldGenerateHTML.apply(this, arguments); 
    ...
}


50 строк гавнокода долой !
Ответить с цитированием
  #13 (permalink)  
Старый 14.07.2009, 14:20
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от e1f
Но тут маленькое но -- $.datepicker.constructor.prototype._generateHTML не существует
почему? Это фактически Datepicker.prototype._generateHTML, только без использования названия внутреннего класса
Ответить с цитированием
  #14 (permalink)  
Старый 14.07.2009, 14:25
Интересующийся
Отправить личное сообщение для walash Посмотреть профиль Найти все сообщения от walash
 
Регистрация: 13.07.2009
Сообщений: 13

Поспешил радоваться, почти все методы datepicker'a имеют ссылки this, который адресуюстя на инстанс datepicker'a, а когда мы пишем так:

var oldGenerateHTML = $.datepicker.constructor.prototype._generateHTML;


то он в this разпазнает как window, а не $.datepicker

А когда код вбиваешь туда текстом, то почему то все ок
Ответить с цитированием
  #15 (permalink)  
Старый 14.07.2009, 14:34
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

x-yuri,
Да, все верно. Я смотрел у себя какую-то не ту версию Datepickera
Ответить с цитированием
  #16 (permalink)  
Старый 14.07.2009, 14:50
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от walash
то он в this разпазнает как window, а не $.datepicker
кто и где?
Ответить с цитированием
  #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() . . .  // и т.д. и т.п.
. . . . . . . ..  .. .. . . .. .  .
. . . . . .. . .. . . . .. .
	
	}
Ответить с цитированием
  #18 (permalink)  
Старый 14.07.2009, 19:33
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

walash, Вам же x-yuri писал как надо:
вместо
oldUpdateDatepicker(inst)
используйте
oldGenerateHTML.apply(this, arguments)
Ответить с цитированием
  #19 (permalink)  
Старый 15.07.2009, 17:05
Интересующийся
Отправить личное сообщение для walash Посмотреть профиль Найти все сообщения от walash
 
Регистрация: 13.07.2009
Сообщений: 13

Ребята, я вас люблю
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск