首页 > 编程语言 > 详细

javascript 事件

时间:2015-08-20 09:05:25      阅读:103      评论:0      收藏:0      [点我收藏+]
技术分享
<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>事件捕获</title>
</head>
<body>
<!-- 事件捕获与事件冒泡事件流正好相反的顺序,事件捕获的事件流是最外层逐级向内传播,也就是先document,然后逐级div标签 , span标签 , a标签; -->
    <div id="div">
        <span id="span">
            <a href="" id="aTag">事件测试</a>
        </span>
    </div>
</body>
<script type="text/javascript">
    document.getElementById(aTag).addEventListener(click,aTag,true);
    document.getElementById(span).addEventListener(click,span,true);
    document.getElementById(div).addEventListener(click,div,true);
    function aTag(e){
        alert(点击的是a标签);
    }
    function span(e){
        alert(点击的是span标签);
    }
    function div(e){
        alert(点击的是div标签);
    }
</script>
<!-- 第三个参数设置为true,即为捕获事件,默认为false;否则的话,事件流还是和上面的一样,因为不管是在IE还是标准浏览器下,事件冒泡浏览器都支持的。 -->
</html>
javascript 事件捕获
技术分享
<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>事件冒泡</title>
</head>
<body>
<!-- IE的事件流叫做事件冒泡,即事件开始时由最具体的元素(文档中嵌套最深的那个节点)接收,然后逐级向上(一直到文档);如下代码: -->
    <div id="div">
        <span id="span">
            <a href="" id="aTag">事件测试</a>
        </span>
    </div>
</body>
<script type="text/javascript">
    document.getElementById(aTag).addEventListener(click,aTag);
    document.getElementById(span).addEventListener(click,span);
    document.getElementById(div).addEventListener(click,div);
    function aTag(e){
        alert(点击的是a标签);
    }
    function span(e){
        alert(点击的是span标签);
    }
    function div(e){
        alert(点击的是div标签);
    }
</script>
<!-- 当单击 “事件测试”文字后,那么click事件会按照如下顺序传播;

  1)先打印出:点击的是a标签

  2) 再打印出:点击的是span标签

  3) 最后打印出:点击的是div标签

  4)  最后肯定是document文档。


所有现代浏览器都支持事件冒泡 -->
</html>
javascript 事件冒泡
技术分享
<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>跨浏览器事件捕获</title>
</head>
<body>
    
</body>
<script type="text/javascript">
var EventUtil = {
    addHandler: function(element,type,handler) {
        if(element.addEventListener) {
            element.addEventListener(type,handler,false);
        }else if(element.attachEvent) {
            element.attachEvent("on"+type,handler);
        }else {
            element["on" +type] = handler;
        }
    },
    removeHandler: function(element,type,handler){
        if(element.removeEventListener) {
            element.removeEventListener(type,handler,false);
        }else if(element.detachEvent) {
            element.detachEvent("on"+type,handler);
        }else {
            element["on" +type] = null;
        }
    },
    getEvent: function(event) {
        return event ? event : window.event;
    },
    getTarget: function(event) {
        return event.target || event.srcElement;
    },
    preventDefault: function(event){
        if(event.preventDefault) {
            event.preventDefault();
        }else {
            event.returnValue = false;
        }
    },
    stopPropagation: function(event) {
        if(event.stopPropagation) {
            event.stopPropagation();
        }else {
            event.cancelBubble = true;
        }
    }
};
</script>
</html>
跨浏览器事件捕获

 

javascript 事件

原文:http://www.cnblogs.com/yhdsir/p/4744012.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!