3

我正在以这种方式编写 JavaScript 类。

var Dialog = function () {
this.dlg = $('<div>', { id: 'dlg' });
};
Dialog.prototype.show = function () {
this.dlg.animate({ opacity: 1.0 }, "fast");
};
Dialog.prototype.close = function () {
this.dlg.animate({ opacity: 0.0 }, "fast", function () { $(this).remove(); });
};

但是,根据函数的调用源,“this.dlg”的“this”指向的不是类本身,而是 jQuery 的元素。他们被埋在关于 css 课程的建议中,我无法通过谷歌找到解决方案。我应该如何定义这些类?

4

1 回答 1

0

你应该试试这个:(self用于这个功能本身)

function DialogWrapper () {
    var self;
    var Dialog = function () {
        self = this;
        self.dlg = $('<div>', { id: 'dlg' });
    };
    Dialog.prototype.show = function () {
        self.dlg.animate({ opacity: 1.0 }, "fast");
    };
    Dialog.prototype.close = function () {
        self.dlg.animate({ opacity: 0.0 }, "fast", function () { $(this).remove(); });
    };

    return new Dialog();
}

更新

我在外面使用一个包装器Dialog来防止self成为全球性的。使用这个包装器,您还可以管理您的类 ( Dialog) 成为singletonmultiton

于 2013-06-15T02:29:33.423 回答