Я изо всех сил пытаюсь понять, как настраиваемый тип события связан с конкретным действием/триггером пользователя. Вся документация, кажется, отправляет событие без какого-либо взаимодействия с пользователем.
В следующем примере я хочу, чтобы событие было отправлено после того, как пользователь наведет курсор на элемент в течение 3 секунд.
var img = document.createElement('img');img.src = 'http://placehold.it/100x100';
document.body.appendChild(img)
var event = new CustomEvent("hoveredforthreeseconds");
img.addEventListener('hoveredforthreeseconds', function(e) { console.log(e.type)}, true);
var thetrigger = function (element, event) {
var timeout = null;
element.addEventListener('mouseover',function() {
timeout = setTimeout(element.dispatchEvent(event), 3000);
},true);
element.addEventListener('mouseout', function() {
clearTimeout(timeout);
},true);
};
У меня есть триггер, но нет логического способа связать его с событием.
Я думал о создании объекта с именем CustomEventTrigger
, который по сути является CustomEvent
, но имеет третий параметр для триггера, а также о создании метода с именем addCustomEventListener
, который работает так же, как addEventListener
, но при инициализации он затем передает целевой элемент пользовательскому триггеру события, который затем отправляет событие по указанию.