2011-01-25 19 views
6

सरल कोड के नीचे मेरे सवाल (कम से कम मैं तो hopse) का वर्णन:इनहेरिट jQuery से यूआई संवाद और फोन ओवरराइड विधि

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

मैं विधि बनाने के ऊपर के भीतर से $.ui.dialog.prototype._create() फोन है, लेकिन नीचे प्राप्त करने की कोशिश फायरबग में त्रुटि:

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

मैं इसे "सुपर" विधि कहां और कह सकता हूं?

jQuery UI संस्करण 1.8.8

उत्तर

11

मुझे लगता है कि मैं सिर्फ एक समाधान नहीं मिला ... $.ui.dialog.prototype._create.call(this);

पूर्ण कोड:

$.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

jQueryUI के लिए 1.9x आप बस कर सकते हैं: 'इस ._super ('_ create'); 'उपर्युक्त समाधान अभी भी मान्य है। – earcam

+2

दिलचस्प। '_create' फ़ंक्शन में सरल 'this._super()' भी होगा। तो यह शायद स्वाद का मामला है। – Saulius

+1

वास्तव में, दस्तावेज़ों के अनुसार (http://api.jqueryui.com/jQuery.widget/#method-_super), _super में कोई तर्क नहीं है। यह सिर्फ जादुई रूप से जानता है कि आप कहां हैं। – Grinn

संबंधित मुद्दे