事件未在方法内定义

时间:2013-04-24 18:59:07

标签: javascript javascript-events

以下对象有什么问题。

var events = {
    targetElem: function(e) {
        var eve = (e) ? e : window.event;
        if (eve.target)
            alert(eve.target);
        else
            alert(eve.srcElement);
    }
};

始终显示错误消息ReferenceError: e is undefined

2 个答案:

答案 0 :(得分:5)

问题与您最初发布的代码无关,它与您留下的评论中的事件处理程序有关。

document.onclick = function() {events.targetElem(e);};
                                                 ^
                                                 |
                                        e is not defined anywhere

应该是

document.onclick = function(e) {events.targetElem(e);};
                            ^
                            |
                        missing e

答案 1 :(得分:0)

如果将此函数正确连接到元素的事件(onclick,onkeydown,onmousemove等),则应定义e。

自己调用events.targetElem()会导致e的值为undefined,但是你不应该得到一个ReferenceError。

您确定此功能中发生了错误吗?尝试将此行放在脚本的顶部: “使用严格”;

它会警告您可能遇到的愚蠢的语法问题。 (他们可能会引起这种混乱)