Javascript 扩展jQueryUI小部件-如何访问父事件
我正在尝试创建一个jQuery小部件,它扩展自。我想有一个自定义方法,在“幻灯片”事件上执行。我尝试像正常使用slider小部件一样覆盖父级选项,但在变量范围方面遇到了这个问题:Javascript 扩展jQueryUI小部件-如何访问父事件,javascript,jquery,jquery-ui,jquery-plugins,Javascript,Jquery,Jquery Ui,Jquery Plugins,我正在尝试创建一个jQuery小部件,它扩展自。我想有一个自定义方法,在“幻灯片”事件上执行。我尝试像正常使用slider小部件一样覆盖父级选项,但在变量范围方面遇到了这个问题: $.widget( "ui.myslider", $.ui.slider, { _create: function() { this.foo = "bar"; // Outputs "bar" this._mySlide(); // Outpu
$.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源:
编辑:解决方案
$.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);
}
}
在jQuery UI>=1.9中,可以改用
\u super
方法:
_slide: function() {
this._super();
// equivalent to $.Widget.prototype._slide.call( this );
}
或超级应用程序
:
_slide: function() {
this._superApply(arguments);
// equivalent to $.Widget.prototype._slide.apply( this, arguments );
}