簡體   English   中英

如何在Javascript事件中訪問成員變量

[英]How do I access member variables inside of an event in Javascript

我有以下javascript:

var testObj = function() {
    this.test1 = "123";
}


testObj.prototype = {
    myFunc: function() {
        var input = $('<input type=button value="clickme" />');
        $('body').append(input);
        input.click(function () {
            alert(this.test1);
        });
    }
}

$(document).ready( function() {
    var t = new testObj();
    t.myFunc();
});

我知道為什么alert語句顯示未定義,但是如何使它顯示test1變量的實際值。

jsFiddle具有示例代碼。

你可以這樣做

http://jsfiddle.net/33Mtu/7/

myFunc: function() {
    var self = this;
    var input = $('<input type=button value="clickme" />');
    $('body').append(input);
    input.click(function () {
        alert(self.test1);
    });
},

當您在點擊功能中說this句話時, this指的是被點擊的項目。 this設置了self ,因此您可以在點擊功能中安全地使用self

嘗試創建對對象的引用以訪問它, this在事件上引用了發送者:

 myFunc: function() {
        var input = $('<input type=button value="clickme" />');
        $('body').append(input);
        var obj = this;
        input.click(function () {
            alert(obj.test1);
        });
    var testObj = function() {
    test1 = "123";
}


testObj.prototype = {
    myFunc: function() {
        var input = $('<input type=button value="clickme" />');
        $('body').append(input);
        input.click(function () {
            alert(test1);
        });
    }
}

$(document).ready( function() {
    var t = new testObj();
    t.myFunc();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM