在javascript中传递事件触发器的索引

时间:2013-02-24 08:23:31

标签: javascript html events

我有一个小的自定义插件,我在其中构建,当我点击某个项目时触发事件。使用鼠标左键单击项目时,将触发以下内容:

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(使用插件)中的监听器。既然,我已经通过了回调函数,我无法解决如何将回调函数传递给某个索引的问题。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

也许你可以这样做:

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

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

这就是你需要的吗?