<input type="text" onkeydown="mykeydown(event,this);"/>现在我想把onkeydown提到外部变成一个function,请问那两个参数该怎么传递(类似的text有很多的,这样写太累了)

解决方案 »

  1.   

    我写了个,没有测试,不知道符合你的要求不
    我是把所有的input都绑定这个事件了,你可以按你的需求改下。// bind event to an object
    var myaddEvent = function(o, e, l) {
        if (document.all) {
            //ie
            o.attachEvent('on' + e, l);
        }
        else {
            //ecma browser
            o.addEventListener(e, l, false);
        }
    }// your function
    var myFunc=function(){
    }// get all your inputs
    var inputs = getElementsByTagName('input');
    // each bind events
    for (var i = 0; i < inputs.length; i++) {
        myaddEvent(inputs[i], 'keydown', myFunc);
    }
      

  2.   

    document.getElementsByTagName('input')[0].onkeydown=function(event){
        var e=event;
        var el=this;
    //其中e为你上面指定的参数event,el为你上面指定的this
    }
      

  3.   

    修改下,你还要传对象过去哈。// your function
    var myFunc=function(obj){
    }// get all your inputs
    var inputs = getElementsByTagName('input');
    // each bind events
    for (var i = 0; i < inputs.length; i++) {
        myaddEvent(inputs[i], 'keydown', myFunc(this));
    }
      

  4.   


    alert(e);  在IE下不认识,FF下倒是可以 呵呵lyanlu的方案还没有试,请稍候
      

  5.   

    document.getElementsByTagName('input')[0].onkeydown=function(event){ 
        var e=event||window.event; 
        var el=this; 
    //其中e为你上面指定的参数event,el为你上面指定的this 
      

  6.   

    gkw521的方案是够简单的也解决了我的问题,thanks。
    同时也多谢lyanlu的帮助。结贴!!!