js错误:htmlfile:未实现

时间:2010-06-22 14:51:54

标签: asp.net javascript-events

我已经建立了一个具有控件(html控件)参数的js类,我尝试将dinamicly onchange事件添加到控件中,但我有以下错误:

htmlfile:未实施

//-------------- the code

Contrl.prototype.AddChangeEvent = function() {

    var element = this.docID;
    var fn = function onChange(element) {

     // action



    };

    if (this.tag == "input" && (this.el.type == "radio")) {
        this.el.onclick = fn(element); // there i have the error 
    }
    else {
        this.el.onchange = fn(element); // there i have the error 
    }
}

1 个答案:

答案 0 :(得分:1)

通过撰写this.el.onclick = fn(element),您立即调用 fn,并将fn次返回的内容分配给onclick

您需要创建一个匿名函数,使用您希望它获取的参数调用fn,如下所示:

this.el.onclick = function() { return fn(element); };

但是,这不是在Javascript中分配事件处理程序的正确方法。

您应该拨打attachEvent(针对IE)或addEventListener(针对其他所有内容),如下所示:

function bind(elem, eventName, handler) {
    if (elem.addEventListener)
        elem.addEventListener(eventName, handler, false);
    else if (elem.attachEvent)
        elem.attachEvent("on" + eventName, handler);
    else
        throw Error("Bad browser");
}