3

次のような jQuery UI ウィジェットを作成しました。

$.widget("ns.wid", {
    options: {
        attr1: "something1",
        attr2: {
             "sub_attr": this.__renderList,
             "css": {
                "opacity": '0.58'
              },
        },
    },

    __renderList: function() {
       console.log("I should be invoked through attr2.sub_attr!");
    }
});

this内部attr2はウィジェット インスタンスを参照せず、代わりにWindow. 直接名前を付けずにウィジェットインスタンスを参照するにはどうすればよいですか? ありがとう。

4

2 に答える 2

0

非プレーン オブジェクトが jQuery のウィジェットで適切に動作するかどうかはわかりませんが、. これを試すことができます。

var widgetData = (new class {
    get options() {
        return {
          attr1: "something1",
          attr2: {
             "sub_attr": this.__renderList,
             "css": {
                "opacity": '0.58'
              },
          },
       };
    }

    __renderList() {
       console.log("I should be invoked through attr2.sub_attr!");
    }
});

widgetData.options.attr2.sub_attr();

于 2016-12-01T03:52:21.573 に答える