2014-12-17 5 views
1

Я хочу вызвать событие с использованием API браузера (в javascript).Javascript Triggering events

Просто для теста я использую сейчас 2 пути и работать правильно:

1)

var event = document.createEvent("HTMLEvents"); 
event.initEvent("dblclick", true, false); 
MyElement.dispatchEvent(event); 

2)

var event = new Event('dblclick'); 
event.initEvent("dblclick",true,false); 
MyElement.dispatchEvent(event); 

Но initEvent и document.createEvent - устаревшие методы (по Firefox).

Существует какой-либо другой способ инициировать события (не создавать новое событие и не использовать устаревшие методы)?

Пожалуйста, не JQuery, чистый Javascript

Если это возможно, чтобы проиллюстрировать на простом примере будет большим.

Очень простой пример для demostration: http://jsfiddle.net/2w308jxt/1/

В этом примере нажмите инициируют также двойной щелчок;)

Спасибо.

+0

Вы видели https://developer.mozilla.org/es/ docs/DOM/elemento.addEventListener? –

+0

Спасибо, но я не хочу регистрировать событие, я хочу «запустить» событие, уже зарегистрированное с помощью Javascript: Пример: инициируйте зарегистрированное событие dblclick (или, возможно, событие drop), используя просто щелчок. – h2odev

+1

В MDN также есть статья о [Пользовательских событиях] (https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent) ... – Teemu

ответ

2

я имел решение прямо перед моими глазами (Firefox только):

var event = new Event('dblclick', { 'view': window, 'bubbles': true, 'cancelable': true }); 
MyElement.dispatchEvent(event); 

Рабочий пример (только Firefox): http://jsfiddle.net/2w308jxt/2/