2014-03-27 7 views
2

Я вижу, что я могу отправить пользовательское событие объекту.Зачем настраиваемые события нужно отправлять объекту?

  1. Мне интересно, почему пользовательское событие должно быть отправлено на объект вообще.

  2. Я хочу вызвать событие с заданным интервалом, и после чтения документации по пользовательским событиям я до сих пор не понял, как запускать их с помощью функций. Как это делается?

Например, я хочу использовать setInterval(), чтобы вызвать мое пользовательское событие «nextTime» каждые 30 секунд.

ответ

1

диспетчерские события - это то же самое, что и их запуск, и поскольку они являются обычными событиями, они никогда не будут вызваны каким-либо естественным образом, поэтому вам придется запускать их самостоятельно. Чтобы инициировать событие из интервала, просто отправляйте событие внутри интервала.

Причина, по которой вам нужен объект, заключается в том, что это обработчик событий, если он не был прикреплен к элементу, вам не нужен обработчик событий, вы можете просто использовать обычные функции.

var event = new Event('custom'), 
    elem = document.getElementById('test'); 

elem.addEventListener('custom', function (e) { 
    console.log('custom triggered'); 
}, false); 

setInterval(function() { 
    elem.dispatchEvent(event); 
}, 30000); 

FIDDLE

+0

К сожалению #adeneo, я пытался понять ту же концепцию. Однако, основываясь на вашем объяснении, не является ли обработчик события функцией? Я мог бы получить тот же результат, просто используя заданный интервал и отправляя ему регулярную функцию. Итак, зачем прикрепить событие к тестовому элементу действительно полезно? –