javascript - jQuery UI 事件范围问题

标签 javascript jquery jquery-ui events scope

我正在尝试构建一个自动执行 jquery ui slider 实例化的类。 我已经可以实例化 slider ,让它们运行等。 但是当我绑定(bind)幻灯片事件时,我遇到了 this 现在是事件的问题。 我制作了一个 var _self = this; 来解决这个问题,但是它会被该类的每个实例覆盖。

类(class):

$(function(window){
    function WoningSelector(slider_id, min_id, max_id, step, min, max){
        this.initialize(slider_id, min_id, max_id, step, min, max);
    }
    WoningSelector.prototype = {};
    var _self;

    // Constructor
    WoningSelector.prototype.initialize = function(slider_id, min_id, max_id, step, min, max){
        this.slider = $('#' + slider_id);
        this.min = $('#' + min_id);
        this.max = $('#' + max_id);

        this.iMin = min;
        this.iMax = max;
        this.step = step;

        _self = this;
        _self.slider.slider({
            range: true,
            step: this.step,
            min: this.iMin,
            max: this.iMax,
            values: [(this.iMin + (this.step * 4)), (this.iMax - (this.step * 4))],
            slide: this.slide
        });

        _self.min.text(this.iMin + (this.step * 4));
        _self.max.text(this.iMax - (this.step * 4));
    };

    // Slide event handler
    WoningSelector.prototype.slide = function(event, ui){
        _self.min.text(ui.values[0]);
        _self.max.text(ui.values[1]);
    };

    window.WoningSelector = WoningSelector;
}(window));

最佳答案

在事件处理程序中使用“this”(删除self),但绑定(bind)到事件时,不要简单地传递

WoningSelector.prototype.slide

改为通过

$.proxy(WoningSelector.prototype.slide, theConcreteInstanceYouBind)

这样,您的处理程序将在上下文 (this) 为 ConcreteInstanceYouBind 的情况下被调用。

关于javascript - jQuery UI 事件范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17190825/

相关文章:

javascript - 页面加载后如何注册事件处理程序?

jquery - 满足条件时跳过某些字段的验证

jquery ui 拖放 - 拖放时调用函数

javascript - jqGrid 错误 - "Element is not a table"

php - 如何保存表单中的信息?

javascript - 在 Android 上动态更改 HTML5 视频 src?

jquery - 如何将一些 html 元素添加到 jquery uidialog

javascript - javascript 的媒体查询

javascript - 从 HTTPS 网页访问的 localhost HTTP。为什么没有 "Mixed Content"错误?

javascript - phonegap 相机未将图像加载到 <img> 标签中