Преобразование собственного объекта события браузера в объект события jQuery

Я установил генерацию UUID (или последовательностей) с помощью Hibernate с использованием аннотации @PrePersist:

@PrePersist
public void initializeUUID() {
    if (uuid == null) {
        uuid = UUID.randomUUID().toString();
    }
}
24
задан 16 revs, 2 users 96% 2 October 2014 в 00:51
поделиться

3 ответа

Слишком долго для комментария ... Поскольку документация немного расплывчата по этому вопросу ... (я смотрю на 1.7.1 в следующем)

jQuery.Event(event, props):

  • создает новый объект
  • устанавливает его свойство type для свойства события type.
  • устанавливает isDefaultPrevented посредством нормализованных вызовов все способы, чтобы проверить, предотвращено ли значение по умолчанию.
  • устанавливает originalEvent для ссылки на событие, которое вы прошли.
  • добавляет произвольный набор свойств, предоставляемых аргументом объекта props.
  • устанавливает метку времени.
  • помечает объект как «фиксированный».

То, что вы получаете, это в основном новый объект с несколькими дополнительными свойствами и ссылкой на исходное событие - без нормализации, кроме isDefaultPrevented.

jQuery.event.fix(event):

  • игнорирует объекты, которые уже были помечены как «исправленные».
  • делает доступную для записи копию (посредством jQuery.Event()) и нормализует свойства, упомянутые здесь .

ETA:

На самом деле, если присмотреться к коду, jQuery.event.fix() должно работать - так, как описано в @ Beetroot-Beetroot. Это все, что делает jQuery для создания объекта события jQuery в диспетчере событий.

15
ответ дан JimmiTh 2 October 2014 в 00:51
поделиться

Вы хотите jQuery.event.fix .

new jQuery.Event(nativeEvent)

Обратите внимание, что на данный момент событие не имеет каких-либо «событийных» свойств, только originalEvent, timeStamp и функций предотвращения пузырей / по умолчанию.

jQuery.event.fix(nativeEvent)

10
ответ дан Domenic 2 October 2014 в 00:51
поделиться

Попробуйте:

document.getElementById('elmtid').onclick = anotherFunction;

с:

function anotherFunction(evt){
    evt = $.event.fix(evt || window.event);//Note need for cross-browser reference to the native event
    ...
}

http://jsfiddle.net/Wrzpb/

6
ответ дан Beetroot-Beetroot 2 October 2014 в 00:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: