2013-02-24 50 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。

這就是你需要的嗎?