如何通过属性的onclick方法引用javascript对象?

时间:2011-06-29 16:40:51

标签: javascript object onclick this

我正在创建一个Javascript对象:

function pager(elementId) {
    this.totalPages = 5;
    this.currentPage = 1;

    var nextPageImage = document.createElement("img");
    nextPageImage.src = "img/next.png";

    nextPageImage.onclick = function(){
        if (this.currentPage+1 <= this.totalPages)
        {
            this.currentPage +=1;
        }
    }

    document.getElementById(elementId).appendChild(nextPageImage);
}

我通过在页面上传入div的id来创建对象的实例:

myPager = new pager('pagerDiv');

问题是onclick函数中的'this'是指图像本身而不是pager对象。我可以使用'myPager'来引用寻呼机对象,但这不是很实用。

如何从图像onclick函数中引用对象?

1 个答案:

答案 0 :(得分:3)

创建一个表示“this”的局部变量,然后使用:

function pager(elementId) {
    this.totalPages = 5;
    this.currentPage = 1;
    var th = this;

    var nextPageImage = document.createElement("img");
    nextPageImage.src = "img/next.png";

    nextPageImage.onclick = function(){
        if (th.currentPage+1 <= th.totalPages)
        {
            th.currentPage +=1;
        }
    }

    document.getElementById(elementId).appendChild(nextPageImage);
}