将参数传递给onmouseover事件

时间:2014-06-26 19:10:42

标签: javascript onmouseover

我试图将参数传递给onmouseover事件,如下所示:

    function obj(id){
        if (!(this instanceof obj)) return new obj(id);
        this.element = (typeof id === 'string') ? document.getElementById(id) : id;
    }
    obj.prototype.call = function(content){
        this.element.addEventListener('mouseover',function(){
            console.log(content); // => undefined
            // My mistake is right here.
            var content = 'Hello';
        },false);
    };
//Edit
    function temp(){}
    temp.prototype.content = function(){
        return 'Hello World';
    };
    var temp = new temp();
    obj('id').call(temp.content());

我无法弄清楚变量contentundefined的原因。而且,我怎么能做对的?

请有人帮我解决这个问题。我真的很感激。

2 个答案:

答案 0 :(得分:0)

我猜,你的回调是用不同的范围或类似的东西执行的。

尝试使用闭包:

obj.prototype.call = function(content){
    this.element.addEventListener('mouseover',(function(content){
        return function(){
            console.log(content); // => undefined
        };
    })(content),false);
};

答案 1 :(得分:0)

适合我:http://jsfiddle.net/ANB3z/

您的ID无效(在这种情况下,您会收到不同的错误)或“未定义的”错误。您看到的消息是在控制台中运行脚本本身而不是mouseover事件的结果。