jQuery事件机制

本文详细介绍了jQuery事件机制的发展历程,包括简单事件绑定、bind、delegate到推荐使用的on事件绑定。on方法支持简单事件和委托事件的注册,具有更高的灵活性,同时提供了事件解绑的off方法。此外,还讲解了事件对象的属性如clientX/Y、pageX/Y、keyCode等,以及如何阻止事件冒泡和浏览器默认行为。
摘要由CSDN通过智能技术生成

jQuery事件机制发展历程:简单事件绑定>>bind事件绑定>>delegate事件绑定>>on事件绑定(推荐)

事件注册

  1. 简单事件注册
click(handler)单击事件
mouseenter(handler)鼠标进入事件
mouseleave(handler)鼠标离开事件

缺点:不能同时注册多个事件

  1. bind方式注册事件
//第一个参数:事件类型
//第二个参数:事件处理程序
$("p").bind("click mouseenter", function(){
    //事件响应方法
});

缺点:不支持动态事件绑定

  1. delegate注册委托事件
// 第一个参数:selector,要绑定事件的元素
// 第二个参数:事件类型
// 第三个参数:事件处理函数
$(".parentBox").delegate("p", "click", function(){
    //为 .parentBox下面的所有的p标签绑定事件
});

缺点:只能注册委托事件,因此注册时间需要记得方法太多了

  1. on注册事件(重点)
  • on注册简单事件
// 表示给$(selector)绑定事件,并且由自己触发,不支持动态绑定。
$(selector).on( "click", function() {});
  • on注册委托事件
// 表示给$(selector)绑定代理事件,当必须是它的内部元素span才能触发这个事件,支持动态绑定
$(selector).on( "click",“span”, function() {});
  • on注册事件的语法:

第一个参数:events,绑定事件的名称可以是由空格分隔的多个事件(标准事件或者自定义事件)
第二个参数:selector, 执行事件的后代元素(可选),如果没有后代元素,那么事件将有自己执行。
第三个参数:data,传递给处理函数的数据,事件触发的时候通过event.data来使用(不常使用)
第四个参数:handler,事件处理函数

$(selector).on(events[,selector][,data],handler);

事件解绑

  1. unbind方式
$(selector).unbind(); //解绑所有的事件
$(selector).unbind("click"); //解绑指定的事件
  1. undelegate方式
$( selector ).undelegate(); //解绑所有的delegate事件
$( selector).undelegate( “click” ); //解绑所有的click事件
  1. off方式(推荐)// 解绑匹配元素的所有事件
// 解绑匹配元素的所有事件
$(selector).off();
// 解绑匹配元素的所有click事件
$(selector).off("click");

触发事件trigger

$(selector).click(); //触发 click事件
$(selector).trigger("click");

jQuery事件对象

jQuery事件对象其实就是js事件对象的一个封装,处理了兼容性。

事件对象形式
获取鼠标位置clientX/clientY pageX/pageY
获取键盘码e.keyCode
阻止浏览器默认行为e.preventDefault()
阻止事件冒泡e.stopPropagation()
//screenX和screenY	对应屏幕最左上角的值
//clientX和clientY	距离页面左上角的位置(忽视滚动条)
//pageX和pageY	距离页面最顶部的左上角的位置(会计算滚动条的距离)

//event.keyCode	按下的键盘代码
//event.data	存储绑定事件时传递的附加数据

//event.stopPropagation()	阻止事件冒泡行为
//event.preventDefault()	阻止浏览器默认行为
//return false:既能阻止事件冒泡,又能阻止浏览器默认行为。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值