阻止默认行为_事件详解D 默认行为及DOM2事件

3fe9c7aa4ca0da7d0f6bd3887cbccc59.png   浏览器的默认行为  JavaScript事件本身所具有的属性,例如 a标签的跳转,Submit按钮的提交,右键菜单,文本框的输入等。 阻止默认行为的方式: event.preventDefault(); event.returnValue = false; return false; 8e4c13359e46c2bd7abfe864a0ded09a.png 我们来看一下阻止方法: 原本的代码是这样的 d0689d5cac3ed3632c6e81e428cd5ce2.png 由于点击一次,页面就会刷新一次 刷新速度太快导致我们看不到控制台输出的效果: 121fb827837068ad96586e35c058bad8.png 点击页面中的超链接并没有什么效果 8e4c13359e46c2bd7abfe864a0ded09a.png 如果我们想要看到控制台输出的语句,就需要用到上面那三个阻止默认行为方式的方法: 第一种方法:event.preventDefault(); bfc77d3d45827c029bfba2635cf0c5ad.png 运行结果如下: bb025559feaf277b8fea802c46b6cbec.png 8e4c13359e46c2bd7abfe864a0ded09a.png 第二种方法:event.returnValue = false; f45120c9ee8037eb896f2c06ce022073.png 运行结果如下: 125dc307f3b831bebee2996b1bfd6fc1.png 8e4c13359e46c2bd7abfe864a0ded09a.png 第三种方法:return false; f3a7fc16b7d8b38f22f77451162ae997.png 运行结果如下: 7257c7f3ba667a0e9e20f8f15ee8da17.png 这三种方法同样都是点击几次就显示几次信息 8e4c13359e46c2bd7abfe864a0ded09a.png 直接写document.是给页面加事件 例如我们这有个form标签,我们来去除一下一些默认的行为 0ea199e633e65e28dd57b9cc1471bf19.png 运行效果如下: 1.点击提交按钮不会提交,会在控制台输出信息 2.点击文本框无法输入键盘上的任意键(但是打汉字可以) 3.右击鼠标页面中任意空白处都不会出现菜单 383be478ae36a6685c0e7c11cc8788e2.png ceb8fbfd5b32b54f62ab6c1136f89b9a.png   DOM2级事件  DOM2级事件处理程序: 添加事件监听器:addEventListener(事件名,处理函数,布尔值) 移除事件监听器:removeEventListener(事件名,处理函数) IE下的事件监听器: 添加:attachEvent(事件名,处理函数);、 移除:detachEvent(事件名,处理函数) 举个小例子来看一下: 95668a0be8b5e54bbaeacd2c45f3920e.png 运行结果,当我们点击红色的div时,同时出现foo和bar的值: 7614f33487cc641bf00bd9d5c2ade760.png 这和之前我们说的普通事件有所区别,普通事件只会显示最下面定义的函数 举个小例子: fa674171d29980d89a754d5f347803bd.png 运行结果如下,只会显示下面的bar函数的值: e7b95a6d03218851763cdc5e184be4d9.png 上面就是普通事件和DOM2级事件显示的区别!!! 8e4c13359e46c2bd7abfe864a0ded09a.png 移除效果时也有区别: 在普通事件中,移除只需要让outer.onclick = null即可 889a67f095c47cd646086000c57ba2c2.png 运行结果再点击红色div时无任何效果: e3daf2e68cb23489d23f22ed83ff8ef9.png 在DOM2事件中,移除需要removeEventListener: cbc1593be6f6d08c5d9b7a3574b4f7b9.png 运行效果如下,当我们点击时只会显示bar没有移除的: f637857d3c3d96bea49b8b0d81a5a3ba.png 如果都移除,可以再写一条移除语句即可 以上就是DOM2和普通事件的添加和移除效果!!!!! 添加时普通事件只能显示最下面的;DOM只要定义的都可以显示 移除时普通事件为null即可;DOM2需要removeEventListener ceb8fbfd5b32b54f62ab6c1136f89b9a.png 我们再来看一下DOM2中的第三个布尔值参数 当我们把它改为true时,和false的效果区别: 2cc2e7088953227365476a3e9854c59d.png 当为false时,点击蓝色区域,显示顺序从上自下 最特定的到最不特定的 78987f12cfad77e9cdae5a3dee8f7f8a.png 当改为true时,显示效果正好相反,从下自上 即最不特定的到最特定的 ceb8fbfd5b32b54f62ab6c1136f89b9a.png 对于版本8以下的IE,我们要用: attachEvent(事件名,处理函数);  来添加事件 detachEvent(事件名,处理函数);  来移除事件 添加的写法: c877f34f813488f8cee3cf8d60b814f9.png 移除的写法: d0601da7bc94f68d905121249f928142.png 此时点击就没有任何效果 ceb8fbfd5b32b54f62ab6c1136f89b9a.png   依旧是封装函数  封装函数时必须要进行判断浏览器的兼容性: 2924f3d1ab6b5e4fbe669dc175b3057a.png 点击红色div时会显示定义的foo中的数值 第一个参数:要传的对象outer 第二个参数:添加的事件click 第三个参数:定义执行的函数foo 再来测试一下移除DOM2事件的函数: fefab2509392496761efb847d08cdf38.png 此时再点击就没有任何输出效果 8e4c13359e46c2bd7abfe864a0ded09a.png - 写作不易,大家多多关注,谢谢啦- fb7fc5a67838bba358c37c6469ac9afa.png ---web分享,分享的不只是web 70ce1e2c868aab318c5978a95a3ced1d.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值