JavaScript添加事件

问题引入:

在模仿某个网站的修改密码的时候,需要用到<a>这个标签来调用js函数,通过查找资料。要想成功调用,需要添加下面这些代码

document.onkeydown = function(e) {

<span style="font-size:14px;">	var ev = document.all ? window.event : e;//区分IE浏览器和其他浏览器对象时的常用写法,IE中的window.event的时间对象是全局对象
		if (13 == ev.keyCode) {//当键盘或者按钮被按下时,发生keydowm事件
			check(form);
		}
	}</span><span style="font-size:12px;">
</span>
在了解第一行代码的时候,发现了一个问题,就是关于JavaScript添加事件的相关知识点


详细描述:

下面描述四种添加时间的方式。前几种现在都已不用。但是还是了解下。

       1:直接在html的属性中写js代码
<div οnclick="alert(4)">demo</div>:点击demo输出4
<div οnclick="alert(window.event.type)">demo</div>点击demo输出click,说明获取了事件click,但这句话在有些浏览器中不行,比如说火狐浏览 器。不兼容。如果写成event.type就能输出。这是因为在火狐浏览器中定义了参数event,该参数恰好与IE的全局对象event重名

    2:定义一个函数,赋值给html元素的onxxx属性
<script>
functin clk(){}
 </script>
 <div οnclick="click()"><demo>
先定义函数clk,然后赋值给onclick属性



3:添加事件方式,使用addEventListener或IE专有的attachEvent
<div id="d3">demo</div>
<script type="text/javascript">
var d3=document.getElementById("d3");
function clk(){alert(4)};
if(d3.addEventListener){
d3.addEventListener('click',clk,false);
}
if(d3.attachEvent){
d3.attachEvent('onclick',clk);
}
</script>
这是目前推荐的方式,较前两种功能更强大,可以为元素添加多个响应函数,支持事件冒泡或捕获,前两种都是默认冒泡

总结如下
IE6/7/8支持通过window.event获取对象,通过attachEvent方式添加时间时也会支持时间对象作为句柄第一个参数传入
FireFox 只支持事件作为句柄第一个参数传入
IE9/Chrome。。。两种都支持
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值