我试图在中创建自定义事件,但并不真正理解如何触发它。据我所知,有jQuery
方法trigger('customEvent')
,但是它是如何用Vanilla JS
制造的?找不到这方面的任何信息。
创建CustomEvent
var addColor = function (elem) {
elem.classList.add('red');
var event = new CustomEvent('madeRed');
elem.dispatchEvent(event);
};
将addEventListener
附加到元素
var elem = document.querySelector('div');
addColor(elem);
elem.addEventListener('madeRed', function (elem) {
elem.classList.add('color-do-changed');
}, false);
发布于 2018-05-17 04:33:32
您的代码运行良好,您只是在调用它之后才决定侦听该事件。另外,如果您想传递自定义数据,那么通过详细信息传递它。您没有传递任何内容,而是希望事件参数是您的元素。
var elem = document.querySelector('div');
var addColor = function (elem) {
elem.classList.add('red');
var event = new CustomEvent('madeRed', {
detail: {
elem
}
});
elem.dispatchEvent(event);
};
elem.addEventListener('madeRed', function (event) {
event.detail.elem.classList.add('color-do-changed');
}, false);
addColor(elem);
.red { color: red }
.color-do-changed { text-decoration: underline }
<div>Make me red</div>
https://stackoverflow.com/questions/50391445
复制相似问题