首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

onclick事件执行的一个函数解决方法

2012-04-28 
onclick事件执行的一个函数scriptfunction doit(evt){var obj window.event?event.srcElement:evt.tar

onclick事件执行的一个函数
<script>
function doit(evt){
  var obj = window.event?event.srcElement:evt.target;
  alert(obj.value)
}
</script>
<input type="button" value="btn1" onclick="doit(event);">
<input type="button" value="btn2" onclick="doit(event);">

这个地方 onclick 用的 doit 为什么还需要参数呢
onclick事件 调用的函数 doit 里的参数 event 这时候是什么?变量?event对象?


[解决办法]
业务上需要参数里面的某些值参与
event对象,你下个firebug看看里面都有什么东西就知道了
[解决办法]
兼容性的处理,标准的DOM事件中,arguments[0]即传入的第一个参数被当作事件参数即event对象,但IE的解决方式是把event作为了window对象的属性。
这意味着FF等浏览器需要传入一个参数(本例中是evt)、而IE直接使用无参方法,这样得到的event对象。

然后是标准的event使用target作为事件当前目标(涉及到冒泡与捕获,姑且这么认为),而IE的实现是srcElement,故上面的代码可以拆成

var event=evt?evt:window.event;
var taget=event.taget||event.srcElement;

热点排行
Bad Request.