js自定义事件和jQuery自定义事件

本文介绍JavaScript自定义事件的使用方法,包括如何创建、监听及触发自定义事件,同时对比了JQuery中自定义事件的实现方式,展示了如何利用这些特性来扩展DOM行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.简述

js自定义事件是用来扩展DOM元素的行为的,可以让DOM元素监听自定义事件,并手动触发,更加灵活地实现一些操作。JQuery自定义事件使用场景更加广泛一些,不仅限于DOM监听自定义事件,可以任意自定义事件并随时触发。用于实现观察者模式,为大型项目解耦非常方便。


2.js自定义事件,js可以让一个DOM元素和一个自定义事件绑定,当DOM元素触发这个事件时,会执行相应的响应函数。示例代码如下


	// 获取一个DOM元素
	var dom = document.getElementById('myDiv');
	// 创建一个js自定义事件
	var evt = document.createEvent('HTMLEvents');
	// 初始化这个自定义事件(给它起个名字)
	evt.initEvent('myEvent1', true, true);
	// 让DOM元素监听这个事件
	dom.addEventListener('myEvent1', function (e, data) {
		console.log('1')
	});
	// DOM元素触发事件 myEvent1
	dom.dispatchEvent(evt); // 1


值得注意的是,一个自定义事件只能初始化一次,即只能拥有一个名字,如果初始化多次,则以最后一次为准


	var dom = document.getElementById('myDiv');
	var evt = document.createEvent('HTMLEvents');
	evt.initEvent('myEvent1', true, true);
	evt.initEvent('myEvent2', true, true);
	dom.addEventListener('myEvent1', function (e, data) {
		console.log('1')
	});
	dom.addEventListener('myEvent2', function (e, data) {
		console.log('2')
	});
	dom.dispatchEvent(evt); // 2


3.jQuery自定义事件,jQuery自定义事件是通过jQuery对象的自定义相关方法(on、one、trigger等)实现的,示例如下:


	// 创建一个jQuery自定义事件对象
	var eventEmitter = $({});
	// 监听事件 myEvent1
	eventEmitter.on('myEvent1', function () {
		console.log('1')
	});
	// 监听事件 myEvent2
	eventEmitter.on('myEvent2', function() {
		console.log('2')
	});
	// 触发事件 myEvent1
	eventEmitter.trigger('myEvent1') // 1
	// 触发事件 myEvent2
	eventEmitter.trigger('myEvent2') // 2




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值