js事件基础

一、

1.如果body里面什么都不放,则给body加点击事件,发现并不能alert相应的东西。因为在body里面不放东西的时候body是根本没有被撑起来的,当我放了一个按钮进去,则body就被撑了起来,只有按钮那么高。点击除了按钮那一块之外的地方也是不行的。但是如果给document加点击事件就是可以的。

2.document的第一个子节点才是html。第0 个子节点视频里面讲的是!<!DOCTYPE html>但是我自己试验是undefined

<document>就像一个隐藏的节点,他包括了<!DOCTYPE html> 和<html>甚至包含了文档头的说明。

3.如果要给整个页面加事件,就要给document加,因为给body加可能撑不开。

二、事件对象

event.clientX event.clientY 在火狐下根本不认,根本没有反应。控制台报错,event没有定义。

在低版本的chrome下也不认。所以这个一般就是认为是ie下的写法。

在火狐下,要传个参数,这个参数是系统传的。

解决方法是 document.onclick = function(ev){

var oEvent = ev||event;

alert(oEvent.clientX+‘,‘);};这个地方如果ev和event的顺序换一下就会在火狐下就会报event undefined的错误。同样的道理在用if来解决兼容性的问题的时候也是这样,必须把ev放在前面。

三、事件流

1.事件冒泡

<!DOCTYPE html>
<html onclick="alert(‘woshihtml‘);">
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        div{
            padding: 10px;

        }
    </style>
</head>
<body onclick="alert(‘woshi body‘);">
<div style="background:yellow;" onclick="alert(this.style.background);">
    <div style="background: blue" onclick="alert(this.style.background);">
        <div style="background: red" onclick="alert(this.style.background);"></div>
    </div>
</div>
</body>
</html>

点击最里面的div他会一级一级的往上传,到body再到html最后到document。

事件冒泡在一些情况下会带来一些麻烦。比如下面的例子中,就是用了一个事件的cancelBubble来阻止事件冒泡。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        div{
            height: 300px;
            width: 300px;
            background: red;
            display: none;
        }
    </style>
    <script>
        window.onload = function () {
            var oBtn = document.getElementsByTagName(‘input‘)[0];
            var oDiv = document.getElementsByTagName(‘div‘)[0];
            oBtn.onclick = function (ev) {
                oDiv.style.display =‘block‘;
                var oEvent = ev||event;
                oEvent.cancelBubble= true;

            };
            document.onclick = function (){
                oDiv.style.display=‘none‘;
            }
        };
    </script>
</head>
<body>
    <input type="button" value="xianshi"/>
<div></div>
</body>
</html>
时间: 2024-10-17 00:37:51

js事件基础的相关文章

JS事件基础和绑定

一.事件的分类 鼠标事件 键盘事件 表单事件 页面事件 二.事件驱动 .事件 javascript侦测到的用户的操作或是页面的一些行为(怎么发生的) 事件源 引发事件的元素.(发生在谁的身上) 事件处理程序 对事件处理的程序或是函数 (发生了什么事) 三.事件的绑定 在脚本中绑定 直接在HTML元素绑定 四.同个元素添加绑定多个事件 手动输入,自定义 IE: 对象.attachEvent("事件(on)","处理程序")   添加 对象.detachEvent(&q

第十一节 JS事件基础

空白点击事件(没什么用处,做个介绍) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>点击</title> <style> body{ border: 1px solid black; } </style> <script> window.onload = functi

C#-WebForm-JS知识:基础部分、BOM部分、DOM部分、JS事件

---恢复内容开始--- 一.基础部分: 1.JavaScript 是什么? 是一门脚本语言,是属于弱类型(语言语法很随意),C#是强类型(语言语法非常严格)(李献策lxc) 优点:JS 执行速度快 2.JS 与java有什么关系? 没有任何关系 3.JS 能做什么事情? 能控制浏览器 BOM 控制元素 DOM JS不能做什么? 不能操作文件(读取.创建.删除) 不能直接访问数据库 扩展:node.js - 一个开发平台,通过这个平台可以开发常规的web服务端,是一块非常轻量级的运行环境 JQu

js学习总结----移动端事件基础及常用的事件库

一.事件基础 PC:click.mouseover.mouseout.mouseenter.mouseleave.mousemove.mousedown.mouseup.mousewheel.keydown.keyup.load.scroll.blur.focus.change... 移动端:click(单击).load.scroll.blur.focus.change.input(代替keyup.keydown)...TOUCH事件模型(处理单手指操作).GESTURE事件模型(处理多手指操作

node.js零基础详细教程(4):node.js事件机制、node异步IO操作

第四章 建议学习时间3小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑.编写接口,最后完成一个完整的项目后台,预计共10天课程. node.js事件机制 node.js是单线程,但是通过事件和回调支持并发,可以实现非常高的性能. node.js所有的API都是通过异步调用.第一堂课的时候,我们写过一个同步和异步的示例(如下),当初说到:同步代码先执行完成,然后才执行异步

jS事件之网站常用效果汇总

下拉菜单 <!--简单的设置了样式,方便起见,将style和script写到同一个文档,着重练习事件基础--> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> *{ margin:0; padding:0; } ul { list-style: none; } body{ margin:

JQuery_事件基础

JavaScript 有一个非常重要的功能,就是事件驱动.当页面完全加载后,用户通过鼠标或键盘触发页面中绑定事件的元素即可触发.jQuery 为开发者更有效率的编写事件行为, 封装了大量有益的事件方法供我们使用. 一.事件绑定 jQuery 通过.bind()方法来为元素绑定这些事件. 可以传递三个参数: bind(type, [data], fn),type 表示一个或多个类型的事件名字符串:[data]是可选的,作为 event.data 属性值传递一个额外的数据,这个数据是一个字符串.一个

7月14日:JS的基础语法

首先,是最近的课程安排: JS的基础语法→BOM→DOM→DOM样式表→JS事件→JS表单→正则表达式: 以下为今天的学习内容: 一.JS的介绍 JS是一种弱类型的解释语言,它用var来定义变量.JS要在网页环境中运行,而Java可以在任何平台使用 二.JS的原始数据类型 undefined:未定义类型和值,无返回值 null:表示不存在的对象 boolean:只有2个值true和false number:数字型,可表示32位的整数和64位的浮点数 string:字符串类型 三.类型的转换 Bo

js事件冒泡和捕捉

(1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. IE 5.5: div -> body -> document IE 6.0: div -> body -> html -> document Mozilla 1.0: div -> body -> html -> document -> window (2)捕获型事件(event capturing):事件从最不精确的对象(document 对象)开