var event = new Event("click");
var elem = document.getElementById("test");
elem.addEventListener("click", function() {
console.log(1);
})
elem.dispatchEvent(event);
#test {
padding: 20px;
background: #000;
color: #fff;
text-align: center;
}
<div id="test">Клац</div>
dispatchEvent на элементе, но использую встроенное событие click. Где взять объект события, что бы искусственно сгенерировать событие?var elem = document.getElementById("test");
elem.addEventListener("click", function() {
console.log(1);
})
//elem.dispatchEvent(event); где взять event?
#test {
padding: 20px;
background: #000;
color: #fff;
text-align: center;
}
<div id="test">Клац</div>
При вызове new Event(...) - создается объект события, и ничего не "затирается".
Полученный объект можно передать в метод dispatchEvent. Таким образом ответом будет являться следующий код
var elem = document.getElementById("test");
elem.addEventListener("click", function(e) {
console.log(1, e);
})
var myClickEventObj = new Event("click");
elem.dispatchEvent(myClickEventObj);
#test {
padding: 20px;
background: #000;
color: #fff;
text-align: center;
}
<div id="test">Клац</div>
new Event(<имя существующего события>) то вернет обычный экземпляр события(Event) с типом указанным в первом аргументе(будет доступно через свойство type). Когда вызывается dispatchEvent то срабатывают все обработчик событий которые подписаны на этот тип события и которые вы давали через addEventListener и в эти обработчики событий попадет созданный вами экземпляр Event.const event = new Event('myCustomEvent')
const elem = document.getElementById('test')
elem.addEventListener('myCustomEvent', () => {
console.log('Я всеравно вызвался')
})
const event2 = new Event('myCustomEvent')
elem.dispatchEvent(event2)
<div id="test">Клац</div>
var e = new MouseEvent("click", {
bubbles: true,
cancelable: true,
clientX: 100,
clientY: 100
});
console.log( e.clientX ); // 100
Свои события можно создать как тут написано через new CustomEvent(...).
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости