您的位置:首页 > Web前端 > JavaScript

JavaScript添加事件

2015-08-23 16:46 597 查看

问题引入:

在模仿某个网站的修改密码的时候,需要用到<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 onclick="alert(4)">demo</div>:点击demo输出4
<div onclick="alert(window.event.type)">demo</div>点击demo输出click,说明获取了事件click,但这句话在有些浏览器中不行,比如说火狐浏览
器。不兼容。如果写成event.type就能输出。这是因为在火狐浏览器中定义了参数event,该参数恰好与IE的全局对象event重名

2:定义一个函数,赋值给html元素的onxxx属性

<script>
functin clk(){}
</script>
<div onclick="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。。。两种都支持
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: