如上,一个<input type="text" value="your name" id="nameText"/> 
 onfocus 时需要触发两个方法: 1,value清零 ;2,弹出正文输入框<textarea></textarea>;我试过各种普通的调用机制比如
 document.getElementById("nameText").onfocus=。
 另一个方法要么也像上面这样,要么嵌在标签里。
但问题来了,前面的会被后面的覆盖,也就是只执行一个方法。
有什么方法可以让JS发挥多线程或者有一个执行次序 而不是直接掐死前一个注:我不太情愿把一个方法嵌在另一个方法里,因为这样不利于方法的通用我常潜水分不多哦

解决方案 »

  1.   

     document.getElementById("nameText").onfocus= function(){fun1();
    fun2();
    ...
    funn();
    }或者:
    function bindEvent(obj,event,fun){
     if (window.attachEvent) {
                    obj.attachEvent("on" + event,fun)
                } else {
                    obj.addEventListener(event, fun, false)
                }
    }
    bindEvent(document.getElementById("nameText"),'focus',fun1);
    bindEvent(document.getElementById("nameText"),'focus',fun2);
      

  2.   

    同一个事件的不同方法 最后一个肯定是会覆盖掉之前的
    LZ的意思是onfocus有时候要清零 有时候要弹出正文输入框是吧?
    对于LZ的这种情况 清零或弹出框应该有各自的触发条件吧 先后顺序应该在onfocus事件代码中控制 而不是去考虑写两个相同的onfocus事件