zoukankan      html  css  js  c++  java
  • jQuery event,冒泡,默认事件用法

    jQuery event,冒泡,默认事件用法

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
        String path = request.getContextPath();
        String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
    %>
    <!DOCTYPE html>
    <html>
    <head>
    <base href="<%=basePath%>">
    <meta charset="UTF-8">
    <title>b index</title>
    <link rel='stylesheet' type="text/css" href='b/css/bootstrap.css'>
    <style type="text/css">
        .s1{
            width: 100px;
            height: 100px;
            background-color: pink;
        }
        .s2{
            width: 50px;
            height: 50px;
            background-color: green;
        }
    </style>
    </head>
    <body style="margin:1px;">
        <div id="div001">div001
            <div id="cdiv001">cdiv001
                <span id="span001">span001
                    <a href="#">link</a>
                </span>
            </div>
        </div>
        <div id='div002'>div002
            <input id="txt001" />
            <input id="txt002" />
        </div>
        <div id='div003'>div003</div>
        <div>
            <button id="btn001">click me to check e.result </button>
        </div>
        <script type="text/javascript" src="js/jquery-1.11.1.js"></script>
        <script type="text/javascript" src="b/js/bootstrap.js"></script>
        <script type="text/javascript" src="js/index039.js"></script>
    </body>
    </html>
    $(function() {
        $('#div001').click(div001Click);
        $('#cdiv001').click(div001Click);
        $('span').click(div001Click);
        $('a').click(div001Click);
        $('#txt001').keydown(txt001Keydown);
        $('#txt002').keydown(txt001Keydown);
        $('#txt002').mousedown(txt002Mousedown);
        $('#btn001').click(btn001Click01);
        $('#btn001').click(btn001Click02);
    });
    function div001Click(e) {
        console.log('currentTarget:' + e.currentTarget.id + "--" + e.type);
        console.log('target:' + e.target.id + "--" + e.type);
        // 这样可以阻止事件冒泡;
        // e.stopPropagation();
        // 这样也可以阻止事件冒泡;
        // return false;
        // 这样可以阻止默认行为,a标签就不会自动跳转导航了;但是不会阻止事件冒泡;
        e.preventDefault();
        // 这样也可以阻止默认行为,但同时也把事件冒泡阻止了;
        // return false;
    }
    function txt001Keydown(e) {
        /**
         * 在txt002中按下了字母a,e对象jQuery.Event如下:
         * 
         * altKey: false    是否按了alt  
         * bubbles: true
         * cancelable: true
         * char: undefined
         * charCode: 0
         * ctrlKey: false    是否按了ctrl
         * currentTarget: input#txt002
         * data: null
         * delegateTarget: input#txt002
         * eventPhase: 2
         * handleObj: Object
         * isDefaultPrevented: function returnFalse() {
         * jQuery111108223536524455994: true
         * key: undefined
         * keyCode: 65        字母a就是65,不论是否按了shift键;
         * metaKey: false    是否按了meta键,大多数键盘上并不存在Meta键,该键存在于MIT计算机、Mac计算机或Sun公司的一些计算机键盘上。
         * originalEvent: KeyboardEvent
         * relatedTarget: undefined
         * result: "txt001KeydownReturn"     如果在return之前进行了debug暂停,是看不到这个值的;api说明:当前事件事件最后触发的那个处理函数的返回值,除非值是 undefined 。
         * shiftKey: false    是否按了shift
         * target: input#txt002
         * timeStamp: 1447392527314
         * type: "keydown"
         * view: Window
         * which: 65    到底按的是哪个键或按钮;
         * __proto__: Object
         * 
         */
        console.log('target:'+e.target.id+'---'+e.which);
        console.log(e);
        return 'txt001KeydownReturn';
    }
    function txt002Mousedown(e) {
        /**
         * 在txt002上点击鼠标左键/右键/中间滚轮:
         * 
         * altKey: false
         * bubbles: true
         * button: 0/2/1        0表示鼠标左键/2表示鼠标右键/1表示鼠标中间轮
         * buttons: undefined
         * cancelable: true
         * clientX: 382/384/384
         * clientY: 69/61/61
         * ctrlKey: false
         * currentTarget: input#txt002
         * data: null
         * delegateTarget: input#txt002
         * eventPhase: 2
         * fromElement: null
         * handleObj: Object
         * isDefaultPrevented: function returnFalse() {
         * jQuery1111020544881583191454: true
         * metaKey: false
         * offsetX: 125/127/127
         * offsetY: 23/15/15
         * originalEvent: MouseEvent
         * pageX: 382/384
         * pageY: 69/61
         * relatedTarget: null
         * result: "txt002MousedownReturn"    如果在return之前进行了debug暂停,是看不到这个值的;api说明:当前事件事件最后触发的那个处理函数的返回值,除非值是 undefined 。
         * screenX: 277/278
         * screenY: 221/215
         * shiftKey: false
         * target: input#txt002
         * timeStamp: 1447393382134/1447393383781/1447393386565        事件触发时距离1970年1月1日的毫秒数
         * toElement: input#txt002
         * type: "mousedown"
         * view: Window
         * which: 1/3/2        1表示鼠标左键/3表示鼠标右键/2表示鼠标中轮
         * __proto__: Object
         * 
         */
        console.log(e);
        return 'txt002MousedownReturn';
    }
    function btn001Click01(e) {
        console.log('btn001Click01');
        // 在控制台查看这个e.result竟然是btn001Click02Result;
        console.log(e);
        return 'btn001Click01Result';
    }
    function btn001Click02(e) {
        console.log('btn001Click02');
        // 在控制台查看这个e.result竟然也是btn001Click02Result;
        console.log(e);
        // 返回当前事件事件最后触发的那个处理函数的返回值;的确是btn001Click01Result
        console.log(e.result);
        return 'btn001Click02Result';
    }
  • 相关阅读:
    mycat 查询sql 报错
    mysql 主从 binlog
    数据库分库分表思路
    JavaScript数组知识
    JS判断当前页面是在 QQ客户端/微信客户端/iOS浏览器/Android浏览器/PC客户端
    js汉字转换为拼音
    工作中常用到的JS验证
    自动部署服务器代码
    php Excel 导入
    PHP 模拟http 请求
  • 原文地址:https://www.cnblogs.com/stono/p/4962467.html
Copyright © 2011-2022 走看看