js中如何把事件源作为参数传递。

thinkhejie 2009-09-12 12:58:27
想问一下,js的事件的原理是什么,
我们写ASP.NET ,如果有一个按钮的点击事件 我们用c# 可能会写成
btn_click(object sender,event e)
{}
如果js想传递事件源 把e也作为参数,因该怎么写啊?
...全文
391 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
licip 2009-09-12
  • 打赏
  • 举报
回复
楼上说得太棒了!
街头小贩 2009-09-12
  • 打赏
  • 举报
回复
把e也作为参数
re:
<input type="button" id="btn" value="CLICK" onclick="doit(event)">
BeenZ 2009-09-12
  • 打赏
  • 举报
回复

<div onclick=test(event) id=itsMe>

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

thinkhejie 2009-09-12
  • 打赏
  • 举报
回复
var obj = evt.srcElement || evt.target; //取事件源
请问这一句是什么意思啊?
William222 2009-09-12
  • 打赏
  • 举报
回复

<button onclick="test();">test</button>
<script>
function test(){
var sourceElement = event.srcElement;//仅限IE
alert(sourceElement.tagName);
}
</script>
hookee 2009-09-12
  • 打赏
  • 举报
回复

<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)">
BeenZ 2009-09-12
  • 打赏
  • 举报
回复
同样的可以直接传递这个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,一个对应DOM

IE: div.attachEvent("onclick",function(){alert()});
DOM:div.addEventListener("onclick",function(){},false)

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧