【问题标题】:How to pass a variable to a listener/handler function如何将变量传递给侦听器/处理程序函数
【发布时间】:2015-01-22 18:08:13
【问题描述】:

我正在使用 projekktor 在浏览器上流式传输我的视频。我在state 事件中有很多听众。

video.addListener('state', listener1);
video.addListener('state', listener2);
video.addListener('state', listener3);

在函数listener3内部和state === 'COMPLETED'时我需要删除监听器listener3。问题是要移除一个监听器,你需要可变的视频。 鉴于 listener3 是一个回调,如何将变量 video 传递给函数 listener3?

【问题讨论】:

标签: javascript jquery callback projekktor


【解决方案1】:

要删除 JavaScript 中的事件侦听器,请使用:

现代浏览器的:

video.removeEventListener('name', fnName);

较旧的ie:

video.detachEvent('name', fnName);

DOM 级别 0:

video['on' + name] = null;

jQuery:

video.off('name');

【讨论】:

  • 看问题的粗体部分:“如何将变量 video 传递给函数 listener3?” 你还没有回答问题。
  • 首先我很抱歉让我度过了漫长的一天,而且我很老练一定已经超越了它:) ...其次我很确定你可以使用 listener3(video);
  • addListener 有两个参数:一个字符串和一个函数的引用。 addListener( 'state', listener3(video) ) 会通过,不是函数,而是函数的结果。这不是 OP 想要的。
猜你喜欢
  • 2010-09-20
  • 2010-09-12
  • 1970-01-01
  • 2019-04-25
  • 2021-02-28
  • 2019-03-29
  • 2021-11-16
  • 2018-08-03
相关资源
最近更新 更多