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

Pass an index on event trigger in javascript

本文关键字:触发器 索引 事件 javascript      更新时间:2023-09-26

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

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(使用插件)中的侦听器。由于我已经传递了回调函数,所以我无法在这里解决如何将某个索引与回调函数一起传递。有什么建议吗?

也许你可以做一些类似的事情:

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

因此,在事件监听器中,您将拥有event.index和event.callback.

这就是你需要的吗?