Как получить все элементы с прикрепленным dijit.Menu - PullRequest
0 голосов
/ 09 июня 2011

Есть ли способ получить все элементы, которым назначено событие oncontextmenu для dijit.Menu ?Или есть какое-либо событие, когда новый dijit.Menu связан с элементом HTML?

Ответы [ 2 ]

1 голос
/ 11 июня 2011

Я думаю, что это будет работать:

var contextMap = {}
dojo.provide('menu');
dojo.declare('menu', [dijit.Menu] , {
 bindDomNode : function(a,b,c){
 this.inherited(arguments);
 contextMap[a] = this;
 console.log(contextMap)
 }
})

Обновленное решение от powtac:
Это работает!Я запускаю это до того, как будут созданы меню.Хитрость заключается в том, чтобы использовать тот же суперкласс, что и className , в этом случае 'dijit.Menu' в качестве строки.

dojo.ready(function() {
    dojo.declare('dijit.Menu', [dijit.Menu], {
        bindDomNode: function(a,b,c) {
            this.inherited(arguments);
            console.log(a);
        },
    })
})

// ...
menu = new dijit.Menu( ... ); // when called the the event is caught 
                              // and runs into the console.log(a);
0 голосов
/ 10 июня 2011

Зачем просматривать DOM в поисках вещей, к которым прикреплены, когда вы можете просто просмотреть все виджеты dijit.Menu?

Вы также можете легко расширить виджет dijit.Menu и добавить собственный сигнал как часть процесса создания виджета.

...