zoukankan      html  css  js  c++  java
  • Dojo初探之4:dojo的event(鼠标/键盘)事件绑定操作(基于dojo1.11.2版本)

    前言:

    上一章详解了dojo的dom/query操作,本章基于dom/query基础上进行事件绑定操作

    dojo的事件

    dojo的事件绑定操作分为鼠标和键盘两种进行详解

    1、鼠标事件

    我们沿用上一章中所使用的方法进行事件绑定

    (1)事件绑定操作:on(页面元素,事件,绑定方法)

    // domConstruct.place(操作的元素, 父元素, "位置");位置:first,before,after
    require(["dojo/dom-construct", "dojo/on", "dojo/domReady!"],
        function(domConstruct, on) {
            function moveFirst() {
                var list = dom.byId("list"),
                    three = dom.byId("three");
                domConstruct.place(three, list, "first");
            }
    
            function moveBeforeTwo() {
                var two = dom.byId("two"),
                    three = dom.byId("three");
    
                domConstruct.place(three, two, "before");
            }
    
            function moveAfterFour() {
                var four = dom.byId("four"),
                    three = dom.byId("three");
    
                domConstruct.place(three, four, "after");
            }
    
            function moveLast() {
                var list = dom.byId("list"),
                    three = dom.byId("three");
    
                domConstruct.place(three, list);
            }
            //绑定事件
            on(dom.byId("moveFirst"), "click", moveFirst);
            on(dom.byId("moveBeforeTwo"), "click", moveBeforeTwo);
            on(dom.byId("moveAfterFour"), "click", moveAfterFour);
            on(dom.byId("moveLast"), "click", moveLast);
    
            function destroyFirst() {
                var list = dom.byId("list"),
                    items = list.getElementsByTagName("li");
                if (items.length) {
                    //清除某个元素
                    domConstruct.destroy(items[0]);
                }
            }
    
            function destroyAll() {
                //清空父类下的子元素
                domConstruct.empty("list");
            }
            // 给id为destroyFirst的元素绑定一个点击事件
            on(dom.byId("destroyFirst"), "click", destroyFirst);
            // 给id为destroyAll的元素绑定一个点击事件
            on(dom.byId("destroyAll"), "click", destroyAll);
        });

    (2)页面:

    <head>
        <title>domTest</title>
        <meta charset="utf-8">
        <script src="dojo/dojo.js">
        </script>
        <script src="js/view/domTest.js"></script>
    </head>
    
    <body>
        <ul id="list">
            <li id="one">One</li>
            <li id="two">Two</li>
            <li id="three">Three</li>
            <li id="four">Four</li>
            <li id="five">Five</li>
        </ul>
        <button id="moveFirst">The first item</button>
        <button id="moveBeforeTwo">Before Two</button>
        <button id="moveAfterFour">After Four</button>
        <button id="moveLast">The last item</button>
        <button id="destroyFirst">Destroy the first list item</button>
        <button id="destroyAll">Destroy all list items</button>
    </body>

    2、键盘事件

    (1)绑定键盘事件

    var dom = require("dojo/dom");
    require(["dojo/on", "dojo/domReady!"], function(on) {
        //给document绑定一个松开按键的事件
        on(document, "keyup", function(event) {
            //把当前按键的值给id为keyCode的元素
            dom.byId("keyCode").value = event.keyCode;
        });
    });
    require(["dojo/dom-construct", "dojo/on", "dojo/query", "dojo/keys", "dojo/domReady!"],
        function(domConstruct, on, query, keys) {
            //给input并且类型是text的标签绑定一个键盘按下事件
            query("input[type='text']").on("keydown", function(event) {
                switch (event.keyCode) {
                    case keys.UP_ARROW:
                        event.preventDefault();
                        alert("上");
                        break;
                    case keys.DOWN_ARROW:
                        event.preventDefault();
                        alert("下");
                        break;
                    case keys.ENTER:
                        alert("回车");
                        break;
                    default:
                        alert("其他按键: " + event.keyCode);
                }
            });
        });

    (2)页面

    <head>
        <title>键盘事件测试</title>
        <meta charset="utf-8">
        <script src="dojo/dojo.js">
        </script>
        <script src="js/view/keyeventTest.js">
        </script>
    </head>
    
    <body>
        <h1>按任意键</h1> keyCode value: <input type="text" id="keyCode" size="2">
        <h1>按方向键上、下</h1>
        <input type="text" id="input1" value="up">
        <input type="text" id="input2" value="down">
        <input type="submit" id="send1" value="send"></body>

    下一章将讲解dojo如何发送ajax请求


  • 相关阅读:
    linux文件系统初探--Day2(3)
    linux文件系统初探--Day2(2)
    linux文件系统初探--Day2(1)
    linux文件系统初探--Day1
    LKD-虚拟文件系统
    linux-nova 安装
    per-file DAX 工作日志(2)
    linux 内核设计与实现——进程管理
    关于用户与服务端密码的校验问题 !mysql php
    [Err] 1055
  • 原文地址:https://www.cnblogs.com/eguid/p/10195625.html
Copyright © 2011-2022 走看看