Переопределите метод Jquery в дочернем объекте

#jquery #methods #overriding

Вопрос:

У меня есть существующая база кода, которую я хотел бы переопределить методом диалога "maximize" для определенного идентификатора div. Я не уверен, как правильно получить доступ к дочерней функции объекта, чтобы переопределить ее.

Сначала я покажу, как я пытаюсь переопределить этот метод. Вот моя текущая попытка, в которой диалоговое окно var выдает следующие ошибки undefined :

 var dialog = $( App.Components.Plot.dialogId ).dialog; dialog.maximize = function () {  isMaximized = true;  self.maximized = false;  console.log("maximize default behavior overridden");  // nothing else called });  

Я также попробовал другой вариант var dialog = $( App.Components.Plot.dialogId ); , затем прикрепил измененную функцию maximize (), которая не выдает ошибок, но выполняется с поведением maximize() по умолчанию.

А теперь остальная часть кода

 (function($) {  var Panel = function (titl, gridId, id){  this.title = title;  this.gridId = gridId;  this.dialogId = "#dialog"   id;   return this;  };   $.extend( Panel.prototype, {  initializePanel: function() {  var self = this, $panelDialog = $( self.dialogId );  if( $panelDialog ){  $( self.gridId ).appendTo( $panelDialog );  var dialog = $panelDialog.dialog( {   }).dialogExtend( {  "maximize" : function() {  isMaximized = true;  self.maximized = false;  // more method called  }   }).parent().appendTo( $( "#mainContent" ) );  } else {  // dialog exist so update position stuff here  }  }    });  })( jQuery );