老师我有个问题

来源:3-4 事件类型(二)

xchengguang

2019-10-26 11:19:56

这段代码是资料里的源码下载下来的,去除了其他,只剩下了这个,可是浏览器里不生效,你也可以自己下载下来试下,而且为什么打印用的‘join’应该是拼接起来的,但是视频里是单个打印的呢
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>事件类型</title>
    <style>
        body {
            height: 1000px;
        }

        input {
            width: 300px;
            height: 50px;
        }

        div {
            padding: 20px 0;
            background: #666;
        }

        #myDiv {
            width: 500px;
            height: 500px;
            background: lightgreen;
        }
    </style>
</head>

<body>

    <div id="myDiv"></div>

    <script type="text/javascript">
        var EventUtil = {
            addHandler: function (element, type, handler) {
                //绑定事件
                //Chrome Firefox IE9等     addEventListener 
                //IE8及IE8以下的浏览器     attachEvent 
                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) {
                //移除事件
                //Chrome Firefox IE9等      
                //IE8及IE8以下的浏览器     
                if (element.removeEventListener) {
                    element.removeEventListener(type, handler, false);
                } else if (element.detachEvent) {
                    element.detachEvent("on" + type, handler);
                } else {
                    element["on" + type] = handler
                }
            },
            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;
                }
            }
        }

        var div = document.getElementById("myDiv");
        EventUtil.addHandler(div, "clcik", function (event) {
            var keys = new Array();
            if (event.shiftKey) {
                keys.push("shift");
            }
            if (event.ctrlKey) {
                keys.push("ctrl");
            }
            if (event.altKey) {
                keys.push("alt");
            }
            if (event.metaKey) {
                keys.push("meta");
            }
            console.log("keys:" + keys.join(","));
        });
    </script>
</body>

</html>


写回答

3回答

好帮手慕星星

2019-10-28

同学你好,

1、如果你点击的时候只按住一个键,那么数组中就会只有一个值。

如果点击的时候按住多个键,数组中就会有多个值。例如:

http://img.mukewang.com/climg/5db6981109ca5e2501990037.jpg

2、join方法可以不用是因为数组和字符串拼接会转化成字符串,输出结果和使用join方法连接的结果是一样的。如下:

http://img.mukewang.com/climg/5db69879091bcedf04650065.jpg

http://img.mukewang.com/climg/5db698720991458c02360062.jpg

自己可以再测试下,祝学习愉快!

欢迎采纳~

0

好帮手慕码

2019-10-26

同学你好,关于这个问题已经修改了哟,感谢同学的反馈,祝学习愉快~

0
hchengguang
h 老师 那这个join是没有用的对吧 每次其实数组里只会有一个
h019-10-28
共1条回复

好帮手慕码

2019-10-26

同学你好!

源代码中有一个单词写错了,导致无法打印,如下:

http://img.mukewang.com/climg/5db3db4709fb961200000000.jpg

打印结果:

http://img.mukewang.com/climg/5db3db8809362add01470049.jpg

另,因为是点击一个后,进行判断,这个事件也不累加,所以这个时候join其实没有起到什么作用的。

源码中的这个问题我们会向上反馈修改哒,但是需要一点时间,同学可以继续往后学习哦~

如果帮助到了你,欢迎采纳,祝学习愉快

0

0 学习 · 40143 问题

查看课程