想问一下,js的事件的原理是什么,
我们写ASP.NET ,如果有一个按钮的点击事件 我们用c# 可能会写成   
btn_click(object sender,event e)
{}
如果js想传递事件源 把e也作为参数,因该怎么写啊?

解决方案 »

  1.   

    同样的可以直接传递这个event参数,比如 <script language="javascript" type="text/javascript"> 
    function test(e){
     alert()
    }
    </script> 
    <html>
    <body>
    <input type=button onclick=test(event)>
    </form>
    </body>
    </html>但是不同浏览器区别不同,IE下面的事件类型是window.event
    而firefox的事件就直接引用传递进去的这个e值除此之外,还有两种给事件添加方法的函数,一个对应IE,一个对应DOMIE: div.attachEvent("onclick",function(){alert()});
    DOM:div.addEventListener("onclick",function(){},false)
      

  2.   


    <script language="javascript">
    function doit(evt){
    var evt = window.event || evt;  //取事件
    var obj = evt.srcElement || evt.target; //取事件源
    alert("Sender is :" + obj.id) 
    }
    </script><input type="button" id="btn" value="CLICK" onclick="doit(event)">
      

  3.   

    把e也作为参数
    re:
    <input type="button" id="btn" value="CLICK" onclick="doit(event)">
      

  4.   


    <button onclick="test();">test</button>
    <script>
    function test(){
    var sourceElement = event.srcElement;//仅限IE
    alert(sourceElement.tagName);
    }
    </script>
      

  5.   

     var obj = evt.srcElement || evt.target; //取事件源
    请问这一句是什么意思啊?
      

  6.   


    <div onclick=test(event) id=itsMe>function test(e)(){
      var obj = evt.srcElement || evt.target; //取事件源
      //这里就得到了事件发生的源头,这里是div,id为itsMe的控件引用
       alert(obj.id) // itsMe
    }