132、js中事件绑定的几种方式

一、事件有三个阶段:

  1. 事件捕获阶段-----由外向里
  2. 事件目标阶段-----最开始选中的那个,但是不一定是最先出现的,根据是那个阶段而定
  3. 事件冒泡阶段-----由里向外

二、绑定方式有哪些?

DOM和jQuery当中都有

  • DOM中:

(1)onclick。 对象.on事件名字=事件处理函数----------如果是多个相同事件注册用这种方式,最后一个执行,之前的会被覆盖掉;

my$("ID名字").οnclick=function( ){ };

(2)对象.addEventListener("没有on的事件名字",事件处理函数,冒泡传递false/捕获传递true);

my$("ID名字").addEventListener("click",function( ){ },false);

(3)对象.attachEvent("有on的事件的名字",事件处理函数);

my$("ID名字").attachEvent("onclick",function( ){ });

三、绑定事件的区别: 

  • addEventListener 和 onclick的区别

(1)一个onclick处理器在同一时间只能指向唯一的对象。因此就算对于同一对象绑定了多次,但是只有最后的一次绑定生效。下图,虽然绑定了两次,只会弹出一个弹出框:‘我是click2’;

 

(2)addEventListener对于同一对象两次绑定的事件,都能够成功运行,也就是前后弹出 ‘我是addEvent1’ '我是'addEvent2'。故对于一个可以绑定的事件对象,想绑定的多次事件都能运行,选用addEventListener。

(3)addEventListener对任何DOM都是有效的,而onclick仅限于HTML;

(4)addEventListener可以控制listener的触发阶段(捕获/冒泡);
 

  • addEventListener 和 attachEvent 的区别

(1)相同点:都可以为元素绑定事件

(2)不同点:

  • 方法名不一样
  • 参数个数不一样addEventListener三个参数,attachEvent两个参数
  • addEventListener 谷歌、火狐都支持IE8不支持 ;attachEvent 谷歌火狐都不支持,IE8支持
  • this不同,addEventListener 中的this是当前绑定事件的对象attachEvent中的this指的是window
  • addEventListener中的事件的类型(事件的名字)没有on ,attachEvent 中的事件的类型(事件的名字)有on

jQuery是一个流行的JavaScript库,用于简化DOM操作和事件处理。它提供了多种方便的方式绑定事件到元素上。以下是jQuery常见的几种事件绑定方式: 1. **直接绑定**: 使用`.on()`方法可以一次性为元素添加多种类型的事件处理器。例如: ```javascript $('#element').on('click', function() { // 事件处理代码 }); ``` 2. **链式绑定** (简写): 对于已经存在的DOM元素,可以直接在选择器后面使用`.click()`、`.hover()`等方法进行事件绑定,这种方式会立即创建处理器: ```javascript $('#element').click(function() { ... }); ``` 3. **委托模式**: 当你需要给动态生成的元素绑定事件时,可以将事件绑定到它们的共同祖先元素上,利用事件冒泡原理来处理: ```javascript $('#container').on('click', '.childElement', function() { ... }); ``` 4. **简写语法** (`.delegate()`方法,现已弃用,但仍然可用):主要用于处理以前动态添加的元素,示例: ```javascript $('#parent').delegate('.child', 'click', function() { ... }); ``` 5. **`bind()`、`live()` 和 `delegate()` 的替代品 - `.on()` 的 `livequery` 特性(已废弃),适用于处理元素插入文档后触发事件的情况。 6. **`one()` 方法**: 只执行一次事件处理,适合作为一次性操作或回调函数: ```javascript $('#element').one('click', function() { ... }); ``` 记得在使用这些方法时,确保你的jQuery版本支持这些功能,并确保代码是在document ready阶段或者元素存在时绑定事件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值