2011-08-09 12 views
6

तक कैसे पहुंचे मैं एक jQuery विजेट बनाने की कोशिश कर रहा हूं जो ui.slider से विस्तारित है। मैं एक कस्टम विधि चाहता हूं जो 'स्लाइड' ईवेंट पर निष्पादित हो। मैं अधिभावी जब स्लाइडर विजेट सामान्य रूप से उपयोग करते हुए माता-पिता के विकल्प जैसे की कोशिश की, लेकिन मैं चर स्कोप के साथ इस समस्या का सामना किया:विस्तारित jquery ui विजेट - पेरेंट इवेंट

$.widget("ui.myslider", $.ui.slider, { 
    _create: function() { 
     this.foo = "bar"; 

     // Outputs "bar" 
     this._mySlide(); 

     // Outputs "undefined" when triggered 
     this.options.slide = this._mySlide; 

     $.ui.slider.prototype._create.apply(this, arguments); 
    }, 
    _mySlide: function() { 
     alert(this.foo); 
    } 
} 

मैं कैसे स्लाइड घटना पर मेरे समारोह को गति प्रदान और मेरी चर के लिए उपयोग किया जा सकता है?

संपादित करें: लिंक ui.slider के स्रोत: https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.slider.js

संपादित करें: समाधान

$.widget("ui.myslider", $.ui.slider, { 
    _create: function() { 
     $.ui.slider.prototype._create.apply(this, arguments); 
     this.foo = "bar"; 
    }, 
    _slide: function() { 
     $.ui.slider.prototype._slide.apply(this, arguments); 
     alert(this.foo); 
    } 
} 

उत्तर

9

jQuery यूआई> = 1.9 में, आप _super विधि का प्रयोग कर सकते हैं:

_slide: function() { 
    this._super(); 
    // equivalent to $.Widget.prototype._slide.call(this); 
} 

या superApply:

_slide: function() { 
    this._superApply(arguments); 
    // equivalent to $.Widget.prototype._slide.apply(this, arguments); 
} 
संबंधित मुद्दे