2013-02-24 47 views
1

我有一个小的自定义插件,当我点击某个项目时,我正在触发一个事件。当与鼠标左键单击物品,以下是触发:在javascript中传递事件触发器的索引

Holder.KeyboardPlugin.prototype.triggerExpansion = function() { 
if(this.expandedItem){ 
    var changedGroupSource = null; 
    Holder.events.trigger(this, 'groupselect', function(changedGroup){ 
    changedGroupSource = changedGroup; 
    }); 
    } 
}; 

Holder.events.trigger具有下面的代码:

function (object, event, properties) { 
     var index = this.indexOf(object); 
     var listener = this.listeners[index]; 
     if (listener) { 
      var callbacks = listener.events[event]; 
      if (callbacks) { 
       for (var i = 0, iMax = callbacks.length; i < iMax; i++) { 
        callbacks[i](properties); 
       } 
      } 
     } 

这里的问题是,上面的我triggerExpansion()方法,在功能上的一切现在很好。我正在将类函数传递给triggerProperties并通过该回调函数,我正在修改插件内部变量changedSource
但是,与此同时,我也希望将所选组的索引(一定数量)传递给我的html(使用插件)中的侦听器。因为,我已经通过了回调函数,所以我无法解决我该如何传递某个索引以及回调函数。有什么建议么?

回答

0

也许你可以这样做:

Holder.events.trigger(this, 'groupselect', { 
    index: theIndex, 
    callback: function(changedGroup){...} 
}); 

所以在事件监听器,你将有event.index和event.callback。

这就是你需要的吗?