0

私はこのようなJavaScriptクラスを持っています

function Palette() {

  this.selectedItem = "";

  this.addBox = function() {
    // Different approach, create a fake box
    b = $("<div id='box-palette' class='box'>Box</div>");
    b.insertBefore('#cont');

    b.mousedown(function() {
        this.selectedItem = "box"; // Here I want to access Palette#selectedItem
        console.log(Palette);
    });
  }
}

jQueryに渡したい関数内のクラスのプロパティにアクセスするにはどうすればよいですか?

どんな助けでも大歓迎です。ありがとう!

4

1 に答える 1

2

jQuery でタグ付けされているため、$.proxy()を使用して親コンテキストをコールバック メソッドに渡します。

function Palette() {

    this.selectedItem = "";

    this.addBox = function () {
        // Different approach, create a fake box
        b = $("<div id='box-palette' class='box'>Box</div>");
        b.insertBefore('#cont');

        b.mousedown($.proxy(function () {
            this.selectedItem = "box"; // Here I want to access Palette#selectedItem
            console.log(Palette);
        }, this));
    }
}

注: IE<9 のサポートがないため、bind()は使用されませんでした

于 2013-09-04T11:07:54.987 に答える