码迷,mamicode.com
首页 > Web开发 > 详细

js事件流

时间:2016-05-30 06:27:02      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:

 ##  **事件流**:##

事件发生后沿着某一方向传播的行为
> 事件流分为冒泡和捕获

IE:只有冒泡

现代浏览器:两种都有,默认冒泡

网景:只有捕获(但是已经不存在)

----------


 ##  **事件分级**:##


DOM0/DOM1:所有浏览器都有的DOM事件,好处是兼容所有浏览器,缺点是同一事件,只能定义一次,多次定义的结果是,后面的覆盖前面。例如X.onclick,只能定义一次。

DOM2:事件可以叠加,X.onclick可以定义两个事件,两个事件可以先后执行,但是不是所有浏览器都兼容。例如addEventListener(事件名称,执行代码,事件方想【true:冒泡|false:捕获】)事件,具体代码如下:

     if(document.addEventListener){
                 p1.addEventListener("click",function(e){

                     alert("hello");
                 });
                 p1.addEventListener("click",function(e){
                     alert("hi");
                 });
             }else{
                 p1.attachEvent("onclick",function(e){
                     alert("hello");
                 });
                 p1.attachEvent("onclick",function(e){
                     alert("hi");
                 });
             }

网景:只有捕获(但是已经不存在)


----------

 ##  **阻止事件发生**:##

阻止默认事件的发生:preventDefault(),例如表单验证失败阻止提交

        <h1>注册</h1>
        <form id="regForm" action="#" method="post">
        <div>用户名:<input type="text" id="username" ></div>
        <div>密码:<input type="password" id="pwd" ></div>
        <div><input id="sub" type="button"  ></div>
        </form>
        <script type="text/javascript">
        sb.onclick = function(e){
        regForm.onsubmit = function(e){
                 e = window.event || e;
                 alert("表单提交");
                 if(e.preventDefault){
                     e.preventDefault();   //现代浏览器方法
                 }else{
                     e.returnValue = false;   //IE方法
                 }
                
                
             }
     </script>

阻止DOM2方法:

    p1.onclick = function(e){
                e = window.event || e;       //兼容 
                if(e.stopPropagation){
                    e.stopPropagation();      //现代浏览器方法
                }else{
                    e.cancelBubble = true;        //IE方法
                }

js事件流

标签:

原文地址:http://www.cnblogs.com/yuanlinl/p/5540917.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!