Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 触发器函数中的主干悬挂事件回调_Javascript_Jquery_Backbone.js - Fatal编程技术网

Javascript 触发器函数中的主干悬挂事件回调

Javascript 触发器函数中的主干悬挂事件回调,javascript,jquery,backbone.js,Javascript,Jquery,Backbone.js,我有一个playerRapper模型,它可以触发播放事件,如下所示: playerRapper.trigger('playing') 然后,在一个名为popupView的单独窗口视图中,我监听initialize上的事件: this.listenTo(playerWrapper, 'playing', function() { doSomething() }); 我的应用程序的一个特点是它是一个chrome扩展,分为两个窗口,一个弹出窗口和一个背景窗口。它们使用chrome运行时方法相

我有一个
playerRapper
模型,它可以触发
播放
事件,如下所示:

playerRapper.trigger('playing')

然后,在一个名为
popupView
的单独窗口视图中,我监听
initialize
上的事件:

this.listenTo(playerWrapper, 'playing', function() {
  doSomething()
});  
我的应用程序的一个特点是它是一个chrome扩展,分为两个窗口,一个弹出窗口和一个背景窗口。它们使用chrome运行时方法相互通信。我遇到的问题是,每当我关闭弹出窗口并重新打开它时,上面的
触发器就会抛出以下错误:

未捕获类型错误:无法读取未定义的属性“0”

我调试并将其固定到主干源代码的
trigger
triggerEvents
函数中
triggerEvents
函数接受
events
参数,该参数是事件回调的列表。在我的例子中,列表中应该只有一个回调。但是,每次我重新打开弹出窗口时,都会在
events
参数中得到一个重复的事件回调,这就是问题的根源。我怀疑这是由于
悬挂主干视图
引起的,这些视图通常被称为
僵尸视图
,所以我尝试了
这个功能。在
popupView.initialize()
函数上停止侦听()

有人对这个问题有见解吗?
谢谢。

你为什么称一个模型为听起来不对的“包装器”。您是否只是将这些变量放在全局窗口范围内?正如@kharandziuk所说,listenTo的第一个参数是一个模型,而不是一个字符串。抱歉,这只是一个书写错误。我在听一个模特。此外,在这种情况下将其称为包装器也是有意义的,因为对象是由第三方API提供的。我将模型连接到全局空间,因为它是一个chrome扩展。。有什么想法吗?:)