Я работаю над очень простым классом, который использует (очень) частные события.
Поскольку я не хочу, чтобы этот класс зависел от jQuery, я использую простые CustomEvent
s (хотя я работаю с jQuery)
Сюрпризом было то, что jQuery не удалось запустить мое событие, сюрпризом 2 было то, что jQuery тестирует hasOwnProperty("type")
на CustomEvent, и это FALSE
Короче говоря: (Редактировать: JunctionEvent
вводил в заблуждение - это только строка «ju-ac» - поэтому я изменил ее в своем примере)
junctionevent = "ju-ac"
e = new CustomEvent(junctionevent, {bubbles: options.bubbles, composed: true})
console.log e, e.type, e.hasOwnProperty("type")
говорит («ju-ac» - это название или тип события на этом этапеof development):
ju-ac { target: null, isTrusted: false, eventPhase: 0, bubbles: true, cancelable: false, returnValue: true, defaultPrevented: false, composed: true, timeStamp: 9808, cancelBubble: false, … }
ju-ac
false
То есть у события есть тип «свойство», имя «ju-ac», но нет свойства с именем «тип»?
Что я делаю не так? (или что jQuery делает неправильно?)
РЕДАКТИРОВАТЬ: я только что узнал, что jQuery не может обрабатывать обычные CustomEvents в качестве ввода события, он обрабатывает такие же данные события (как любой другой объект на входе) - эта ставкаЯ потеряла. Это не меняет моего вопроса: почему событие после создания свойства type
содержит строку «xxxx», но hasOwnProperty («type») возвращает FALSE