JavaScript学习

第二十一课

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <!-- <div id="div1" onclick="add()">div1</div> -->
    <div id="div1" >div1</div>

    <script src="21.js"></script>
</body>
</html>

js

// 什么是事件:
// js  -》 交互   人可以去操作页面
// js -》事件驱动的方式

// 用户  -》  操作html元素  -》 产生一个事件  -》事件  主动的 调用  设定  方法  函数

// 事件源: 产生事件的地方
// 时间的类型:点击  键盘
// 事件对象:记录好  信息
// 事件的处理程序:函数


// 注册 :把以后会发生的事情,先提前报备一下
// 没钱了就给家里打电话  你  肯定打电话

// 没钱了  +  打电话  -》 你
// 事件的类型  +  函数   -》  元素

// 两种方式
// 1.html的属性:
// 属性名:on +事件的名字  onclick
// 属性值:  方法

//     直接在html设定
//     通过js的元素对象来设定



var num = 0;
function add(){
    // console.log("点击:"+ ++num);
    console.log("addEventListener 点击:"+ ++num);
}

var num2 = 0;
function add2(){
    // console.log("点击:"+ ++num);
    console.log("addEventListener 点击:"+ num2--);
}

var div1  = document.getElementById("div1");
// div1.onclick  = add;

// div1.onclick = null;

// // 2.通过调用  系统提供的方法

// div1.addEventListener(事件类型click,函数add,事件的处理方式 布尔值  false  true);


div1.addEventListener("click",add);
div1.addEventListener("click",add2);


// 删除
div1.removeEventListener("click",add);

// ie8  attachEvent()   detachEvent()
// ie10






第二十二课

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>

    <div id="div1" >div1</div>
    <input type="text" name="a" id="input1">
    <a href="http://www.baidu.com" target="_blank" id="a1">百度</a>

    <script src="22.js"></script>
</body>
</html>

js

// 事件函数 :  发生的时候  -》  操作 function

var div1 = document.getElementById("div1");
div1.addEventListener("click",add);

// 事件对象  event: 提供了事件的详细信息:
// 具体发生事件的元素,鼠标的位置,点击的状态  键盘的按键

var input1 = document.getElementById("input1");
input1.addEventListener("keydown",add);

function add(event){
    // var e = event || window.event;  //ie8
    console.log(event);

    


    // 默认操作
    // 取消默认操作

    // event.preventDefault();

    ie8  -> event.returnValue = false;
    return false;



}


var a1 = document.getElementById("a1");
// a1.addEventListener("click",add);

a1.onclick = add;
// 取消默认操作
return false;

// screenX y: 屏幕的左上角

// clientX y: 浏览器的左上角

// screenX: 11
// screenY: 119
// clientX: 11
// clientY: 16

第二十三课

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        #div1{
            width: 200px;
            height: 200px;
            background: green;

        }
        #div2{
            margin-left: 200px;
            width: 100px;
            height: 100px;
            background: red;
        }
    </style>
</head>
<body>
    <div id="div1">div1
        <div id="div2">div2</div>
    </div>
    <ul>
        <li>li1</li>
        <li>li2</li>
        <li>li3</li>
        <li>li4</li>
        <li>li5</li>
    </ul>

    <script src="23.js"></script>
</body>
</html>

js

// 事件的传播:
// 多个标签,互相嵌套  点击页面时候 点击事件
// 是不是 被点中的标签  才会发生点击事件?


// var div1 = document.getElementById("div1");
// var div2 = document.getElementById("div2");


// div1.addEventListener("click",div1Click);
// div2.addEventListener("click",div2Click);



// function div1Click(){
//     console.log("div1 click")
// }


// function div2Click(){
//     console.log("div2 click")
// }


// 事件的传播:
// 在默认的情况下,点页面的一个标签,处在传播路径上的标签都会监听到对应的事件


// 传播路径呢


// var head1 = document.getElementsByTagName("head")[0];
// head1.addEventListener("click",head1Click);
// var body1 = document.getElementsByTagName("body")[0];
// body1.addEventListener("click",body1Click);





// function head1Click(){
//     console.log("head click")
// }


// function body1Click(){
//     console.log("body click")
// }




// 事件流:对应标签接收到事件的顺序
// 回声:  人  -》  大山  -》  人

// 两大阶段:

// 捕获阶段:从起始点  -》 目标位置
// 冒泡阶段:目标位置 -》起始点


// head1.addEventListener("click",head1Click,事件的传播  false true );


// false  -> head1Click   冒泡阶段执行
// true  -> head1Click   捕获阶段执行



var div1 = document.getElementById("div1");
var div2 = document.getElementById("div2");
// 捕获阶段
div1.addEventListener("click",div1ClickTrue,true);
div2.addEventListener("click",div2ClickTrue,true);



function div1ClickTrue(){
    console.log("捕获阶段 div1 click")
}


function div2ClickTrue(){
    console.log("捕获阶段 div2 click")
}







// 冒泡阶段
div1.addEventListener("click",div1Click,false);
div2.addEventListener("click",div2Click,false);



function div1Click(){
    console.log("冒泡阶段 div1 click")
}


function div2Click(event){
    event.stopPropagation();  //阻止冒泡
    console.log("冒泡阶段 div2 click")
}




// 事件代理:


var ul1 = document.getElementsByTagName("ul")[0];
ul1.addEventListener("click",ulClick);

function ulClick(event){
    // console.log("ul click");
    console.log(event.target);
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值