Javascript.RU

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

Переопределение метода базового класса
Доброго времени суток.

Суть задачи: есть некий класс, нужно сделать так, чтобы вызвался его метод(приватный) и выполнились мои дополнительные действия.

Конкретно: Есть jquery datepicker, у него есть метод _generateHTML, нужно сделать так, чтобы он вызывался и делал все что он делает, плюс еще дополнительные действия.

А вообще задача состоит в том чтобы динамически изменять Html datepicker'a, а проблема в том, что он постоянно его перегенерирует и я не знаю, куда привязать мои действия по изменению html.

(ах да, редактировать файл с кодом самого DatePicker'a нельзя)

полезные ссылки: http://jquery-ui.googlecode.com/svn/....datepicker.js
Ответить с цитированием
  #2 (permalink)  
Старый 13.07.2009, 14:05
Интересующийся
Отправить личное сообщение для walash Посмотреть профиль Найти все сообщения от walash
 
Регистрация: 13.07.2009
Сообщений: 13

up
Ответить с цитированием
  #3 (permalink)  
Старый 13.07.2009, 14:29
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

walash, вы топик только сегодня создали, не нужно апать его так быстро/часто.

Сами уже что-то попробовали сделать? А то Ваш топик звучит как задание, а не просьба помочь. Для заданий, есть соответствующий раздел.
__________________
Тонкости ECMAScript
Ответить с цитированием
  #4 (permalink)  
Старый 13.07.2009, 14:34
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Так сделать-то можно, но это гадко и подло То есть примерно так:
$.datepicker.constructor.prototype._generateHTML = function(){
  // do something ...
}
$.datepicker = new $.datepicker.constructor()

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

e1f, ты почти оветил на мой вопрос!!

еще последний шаг и проблема будет решена

$.datepicker.constructor.prototype._generateHTML = function(){

$.datepicker._generateHTML(inst); // не знаю как в этом месте вызвать этот метод, чтобы выполнился для текущего состояния объекта
DoSomeExtraActions();
}
$.datepicker = new $.datepicker.constructor();

P.S. to Dmitry A. Soshnikov: сори за напористость )
Ответить с цитированием
  #6 (permalink)  
Старый 13.07.2009, 15:34
Интересующийся
Отправить личное сообщение для walash Посмотреть профиль Найти все сообщения от walash
 
Регистрация: 13.07.2009
Сообщений: 13

К тому же если так написать получается рекурсия
Ответить с цитированием
  #7 (permalink)  
Старый 13.07.2009, 16:30
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

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

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

мб лучше так?
var oldGenerateHTML = $.datepicker.constructor.prototype._generateHTML;
$.datepicker.constructor.prototype._generateHTML = function(){
    oldGenerateHTML.apply(this, arguments); 
    ...
}
Ответить с цитированием
  #10 (permalink)  
Старый 14.07.2009, 12:48
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Да, так действительно лучше Но тут маленькое но -- $.datepicker.constructor.prototype._generateHTML не существует
Ответить с цитированием
Ответ


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

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