事件

点击事件

参考博客链接

  1. onclick

input框

  1. onfocus 当元素获取到焦点的时候触发
odiv.onfocus = funcion(){}
  1. onblur 当元素失去焦点的时候触发
  2. focus() 给指定的元素设置焦点
obj.focus()
  1. blur() 取消指定元素的焦点
  2. select() 全选当前的文字
<body>
    <input type="text" />
    <button >全选</button>
    <script>
    window.onload = function() {
        var oinpt = document.getElementsByTagName("input")[0];
        var obtn = document.getElementsByTagName("button")[0];
        obtn.onclick = function() {
            oinpt.select();
        }
    }
    </script>
</body>

鼠标

  1. onmouseover 鼠标移入 会冒泡
  2. onmouseout 鼠标移出 会冒泡
  3. onmouseenter 鼠标移入 不会冒泡 推荐使用
  4. onmouseleave 鼠标移出 不会冒泡 推荐使用
  5. onmousedown 鼠标按下
  6. onmouseup 鼠标放开
  7. onmousemove 鼠标移动

键盘

  1. onkeydown 键盘按下
  2. onkeyup 键盘抬起
document.onkeydown = function(event) {
	// 常用的是event.keyCode, 因为这是标准的, 其他的是非标准的(w3c统一规范的是标准的, 否则是非标准的)
}

页面加载事件

  1. onload
window.onload = function () {
  
  // 当页面完全加载所有内容(包括图像、脚本文件、CSS 文件等)执行
}
  1. onunload
window.onunload = function () {
  // 当用户退出页面时执行(关闭页面)
}

滚动条事件

  1. onscroll
    用于监听滚动条的事件, 只要滚动条移动, 就会触发事件
var box = document.getElementById('box'); 
box.onscroll = function () {
	console.log(box.scrollTop);
}

如何给浏览器的滚动条注册onscroll事件呢

这俩方法都可以
document.onscroll = function () {};
window.onscroll = function () {}; // 更常用, 推荐

注册事件的方法

1. 方法一

// 事件的三要素:
// 1. 事件源
// 2. 事件名
// 3. 事件处理函数
** 多次给同一个元素注册同一个事件, 后面的会覆盖前面的
element.onclick = function () {
// 事件触发执行的代码
alert('哈哈')
}
box.onclick = null;

2. 方法二

给同一个元素注册相同的事件, 不会覆盖
第一个参数: 事件名称
第二个参数: 事件处理函数
第三个参数: boolean 来控制事件触发的阶段
box.addEventListener('click', eventCode, false); // 注册  ie9+
box.removeEventListener('click', 事件处理函数的名称, false); // 移除
function eventCode() {
	console.log('点击后执行');
}
如果使用removeEventListener取消事件, 那么在注册的时候, 第二个参数就不能传入匿名函数. 因为移除的时候, eventCode的地方要放注册事件的时候的事件处理函数的名称

3. 方法三

为了兼容addEventListener的
attachEvent() 用于兼容早期ie浏览器的
box.attachEvent('onclick', eventCode); // 注册 兼容早期ie浏览器
box.detachEvent('onclick', 事件处理函数的函数名); // 移除

function eventCode() {
	console.log('点击后执行');
}

事件触发的三个阶段(只针对同一个事件类型)

1. 事件捕获阶段 父元素的事件在捕获阶段执行- (true)
2. 事件目标阶段 
3. 事件冒泡阶段 父元素的事件**默认**在冒泡阶段执行- (false)

事件委托

事件委托的原理: 事件冒泡!
点击子元素, 冒泡到父元素, 触发父元素的事件. 事件的触发, 浏览器会创建一个对应的事件对象, 事件对象上的target属性, 会对应被点中的那个子元素, 然后可以操作子元素, 形成一种针对子元素注册事件的效果, 但是又只是给父元素注册了事件.

不仅仅是addEventListener能够实现事件委托, onclick也可以, 因为他的原理是事件冒泡. 什么事件都可以!
box.addEventListener('click', function(event){
	console.log(event)
	console.log(event.target)
}, false); // 注册  ie9+

事件对象

事件对象常用的属性

    var ul  = document.getElementById('wrap');
    ul.onclick = function(event){
       console.log(event.type) //事件的类型
       console.log(event.target)//事件目标
       console.log(event.clientX);//鼠标在可视区域水平方式的坐标
       console.log(event.clientY);//鼠标在可视区域垂直方向的坐标
       console.log(event.pageX); //鼠标在整个页面的水平坐标
       console.log(event.pageY);//鼠标在整个页面的垂直坐标
    }

事件对象的方法

  1. event.preventDefault(); 阻止默认行为
  2. event.stopPropagation(); 阻止事件传播
// event.preventDefault(); 阻止默认行为
// event.stopPropagation(); 阻止事件传播
var link = document.getElementById('a'); 
link.addEventListener('click',function(event){
    console.log('nihao');
    // return false; 在addEventListener中无法阻止a标签的默认跳转
    event.preventDefault(); // 这个可以阻止a标签的默认跳转
},false)

 link.onclick = function(){
     return false; // 在onclick事件中, 可以阻止a标签的默认跳转
 }
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值