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(...)
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Каким образом на ютубе реализована такая предзагрузка? Сложно ли такое сделать?
Данный вопрос является точным дубликатом:
Хей, гайсМожет быть ещё кто-нибудь столь поздней ночью сможет обратить свой взор на мою проблему