将变量传递给另一个函数

时间:2014-02-02 13:02:43

标签: javascript

我有这个简单的代码:

function rotatecard(event){
    this.parent.parent.className = "rotated";
}

function rotatebutton() {
        "use strict";
        var cardbutton = document.getElementsByClassName('rotatebutton'), i;
        for (i = 0; i < cardbutton.length; i += 1) { bindEvt(cardbutton[i], "click", rotatecard) };
}

但在rotatecard函数中this报告为未定义。这可能是基本的东西,但有人可能会指出我做错了吗?

编辑:bindevent代码:

var bindEvt = (function () {
    "use strict";
    if (document.addEventListener) {
        return function (element, event, handler) {
            element.addEventListener(event, handler, false);
        };
    }
    return function (element, event, handler) {
        element.attachEvent('on' + event, handler);
    };
}());

2 个答案:

答案 0 :(得分:1)

耶。我相信,这可能是指全球窗口。尝试使用

event.target  

如果您需要捕获点击的元素

答案 1 :(得分:1)

如果您想要事件目标,则可以通过event.target

如果要访问定义处理程序的此对象,请使用Function.prototype.bind

bindEvt(cardbutton[i], "click", rotatecard.bind(this))