1

特定のアイテムをクリックするとイベントをトリガーする小さなカスタム プラグインを作成しています。アイテムを左マウスでクリックすると、次のことがトリガーされます。

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 (プラグインを使用する) のリスナーに渡したいと考えています。すでにコールバック関数を渡しているため、ここでもコールバック関数とともに特定のインデックスを渡す方法を解決できません。助言がありますか?

4

1 に答える 1

0

Maybe you can do something like:

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

so in the event listener you will have event.index and event.callback.

Is that what you need?

于 2013-02-24T09:53:44.167 に答える