2011-01-25 17 views
6

El simple código siguiente se describen mi pregunta (al menos yo hopse modo):de diálogo Heredar de jQuery UI y llamar método reemplazado

$.widget("ui.mydialog", $.ui.dialog, { 
    _create: function() { 
    // How to call _create method of dialog? 
    } 
}); 

Traté de llamar $.ui.dialog.prototype._create() desde dentro del anterior método de crear, pero conseguir el siguiente error en Firebug:

this.element is undefined 
this.originalTitle = this.element.attr('title'); 
jquery...5667348 (line 5864) 

¿Cómo puedo llamar a ese método "super"?

jQuery UI versión 1.8.8

Respuesta

11

supongo que acabo de encontrar una solución ... $.ui.dialog.prototype._create.call(this);

El código completo:

$.widget("ui.ajaxdialog", $.ui.dialog, { 
    _create: function() { 
    // Your code before calling the overridden method. 
    $.ui.dialog.prototype._create.call(this); 
    // Your code after calling the overridden method. 
    } 
}); 
+6

Para jqueryui 1.9x sólo tiene que hacer: 'esto ._super ('_ create'); 'la solución anterior también sigue siendo válida. – earcam

+2

Interesante. La función simple 'this._super()' en '_create' también funcionará. Entonces es la cuestión del gusto, probablemente. – Saulius

+1

En realidad, de acuerdo con los documentos (http://api.jqueryui.com/jQuery.widget/#method-_super), _super no tiene ningún argumento. Simplemente sabe mágicamente dónde estás. – Grinn

Cuestiones relacionadas