#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 );