Tutorial: event-target | Video.js Documentation

Event Target

概述

Video.js 中的 Events 事件是经过设置的,它们模仿对象上使用的 DOM API,提供具有相同功能的,简介有用的方法。

on()addEventListener()

此方法用于向 EventTarget 上添加一个事件侦听器。

  1. var foo = new EventTarget();
  2. var handleBar = function(event) {
  3. // event 事件对象,可通过 event.target.player 获取当前播放器实例
  4. console.log('bar was triggered');
  5. };
  6. foo.on('bar', handleBar);
  7. // 这会导致调用任何 `bar` 事件上的事件侦听器
  8. // 更多请参阅 https://docs.videojs.com/eventtarget#trigger
  9. foo.trigger('bar');
  10. // 输出 'bar was triggered'

off()removeEventListener()

此方法用于从 EventTarget 上删除侦听器函数。

  1. var foo = new EventTarget();
  2. var handleBar = function() {
  3. console.log('bar was triggered');
  4. };
  5. // 为 `bar` 事件添加一个事件侦听器
  6. // 更多请参阅 https://docs.videojs.com/eventtarget#on
  7. foo.on('bar', handleBar);
  8. // 运行所有 `bar` 事件上的事件侦听器
  9. // 更多请参阅 https://docs.videojs.com/eventtarget#trigger
  10. foo.trigger('bar');
  11. // 输出 'bar was triggered'
  12. foo.off('bar', handleBar);
  13. foo.trigger('bar');
  14. // does nothing

one()

此方法仅用于让事件侦听器调用一次,而不再调用。

使用 on()off 模拟 one()(不推荐):

  1. var foo = new EventTarget();
  2. var handleBar = function() {
  3. console.log('bar was triggered');
  4. // 在首次触发后删除这个处理函数
  5. foo.off('bar', handleBar);
  6. };
  7. foo.on('bar', handleBar);
  8. foo.trigger('bar');
  9. // 输出 'bar was triggered'
  10. foo.trigger('bar');
  11. // does nothing

使用 one()

  1. var foo = new EventTarget();
  2. var handleBar = function() {
  3. console.log('bar was triggered');
  4. };
  5. // 首次触发后被删除
  6. foo.one('bar', handleBar);
  7. foo.trigger('bar');
  8. // 输出 'bar was triggered'
  9. foo.trigger('bar');
  10. // does nothing

trigger()dispatchEvent()

此方法用于触发 EventTarget 上的一个事件,它将运行所有侦听器。

注意:如果 EventTarget.allowedEvents_ 中有 click,触发器将尝试调用 onClick 函数(如果它存在)。

  1. var foo = new EventTarget();
  2. var handleBar = function() {
  3. console.log('bar was triggered');
  4. };
  5. foo.on('bar', handleBar);
  6. foo.trigger('bar');
  7. // logs 'bar was triggered'
  8. foo.trigger('bar');
  9. // logs 'bar was triggered'
  10. foo.trigger('foo');
  11. // does nothing