将事件写在html中就能执行整体事件,写在js里为什么不能执行?
======================================================注:本文源代码点此下载======================================================将事件写在html中就能执行整体事件,写在js里为什么不能执行?body>div id="div1" onclick="fn(event)
======================================================
注:本文源代码点此下载
======================================================
将事件写在html中就能执行整体事件,写在js里为什么不能执行?
body>
div id="div1" οnclick="fn(event)" style="width:200px; height:200px; background-color:#0cc">
1111
div>
body>
html>
script type="text/javascript">
var odiv = document.getelementbyid("div1")
function fn(event){
alert(event.target.id);
}
//odiv.οnclick=function(){fn(event)}为什么我把代码放在这里不能执行,而放在id为div1的html标签内就能执行。
script>
解决方法:
以上代码在火狐里确实不行,原因如下:
odiv.οnclick=function(){fn(event)}
这样写,fn(event)的event相当于是实参,而这个event在外面的那个匿名方法里是没有定义的(在ie中是定义了的,就是
window.event这个全局的事件对象),没有定义就是undefined,所以不行。改成
odiv.οnclick=function(event){fn(event)} 就可以了
-------------------------------------------------------------------------------------------------------
background-color:#0cc">为什么这样就行呢,因为火狐在处理这个οnclick="fn(event)"时,会自动的把这个
代码转化为οnclick=function(event){fn(event)} 。在用firebug调试的时候会发现是这样的。
注意:里面的参数一定要是event才行,要不然也会报错。
绿色通道:好文要顶关注我收藏该文与我联系
posted on 2011-09-26 16:41 春雨_yang 阅读(16) 评论(0)编辑 收藏
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)