代码触发成功ajax响应事件。由于某些原因,事件监听器在此代码之后附加在函数中。是否可以捕获已经触发的事件并在添加侦听器时处理它,或者我必须更改实现?
答案 0 :(得分:1)
我很确定你不能“存储”事件,但你可以做这样的事情
var events = [],
object = { test: 'text' };
item.trigger('event', object);
events.push({ name: 'event', data: object });
item.listenTo('event', function( data )
{
}
// Make sure this is called after the listener is executed,
// and only once or you will be making multiple triggers
if ( events.length > 0 )
{
for ( i = 0; i <= events.length; i++ )
{
if ( events[i].name = 'event' )
{
item.trigger('event', events[i].data);
events.splice(i, 1);
}
}
}
(尚未测试此代码)
不建议执行此操作,您应该重构代码并确保在任何触发器之前执行侦听器,因为如果不是,则代码可能出现问题。这只是糟糕的代码,你可能很容易重构,但这取决于你。