Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Vanilla JS中触发CustomEvent_Javascript_Dom Events - Fatal编程技术网

Javascript 在Vanilla JS中触发CustomEvent

Javascript 在Vanilla JS中触发CustomEvent,javascript,dom-events,Javascript,Dom Events,我试图用香草javascript创建自定义事件,但并不真正理解如何触发它。据我所知,有jQuery方法trigger('customEvent'),但它是如何在Vanilla JS中制作的呢?找不到任何关于这个的信息 创建CustomEvent: var addColor = function (elem) { elem.classList.add('red'); var event = new CustomEvent('madeRed'); elem.dispatch

我试图用香草javascript创建自定义事件,但并不真正理解如何触发它。据我所知,有
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);

您的代码工作正常,您只是在调用事件后决定侦听它。另外,如果要传递自定义数据,请将其传递。您没有传递任何内容,但希望事件参数是您的元素

var elem=document.querySelector('div');
var addColor=函数(elem){
元素classList.add('red');
var事件=新的CustomEvent('madeRed'{
详情:{
元素
}
});
要素调度事件(事件);
};
元素addEventListener('madeRed',函数(事件){
event.detail.elem.classList.add('color-do-changed');
},假);
addColor(elem)
.red{color:red}
.color不更改{文本装饰:下划线}

让我变成红色
那么你的实际问题是什么?顺便说一句,在添加事件侦听器之前,您正在调度事件。如果要触发它,可能会重复,我只需调用elem.dispatchEvent(event)@是的,如果你想传递一些自定义数据,你只需要第二个参数