当前位置: 代码迷 >> JavaScript >> onclick事件执行的一个函数解决方法
  详细解决方案

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

热度:103   发布时间:2012-04-28 11:49:53.0
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;
  相关解决方案