Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 扩展jQueryUI小部件-如何访问父事件_Javascript_Jquery_Jquery Ui_Jquery Plugins - Fatal编程技术网

Javascript 扩展jQueryUI小部件-如何访问父事件

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

我正在尝试创建一个jQuery小部件,它扩展自。我想有一个自定义方法,在“幻灯片”事件上执行。我尝试像正常使用slider小部件一样覆盖父级选项,但在变量范围方面遇到了这个问题:

$.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 );
}