2009-08-17 2 views
0

У меня есть сетка dojo, на которой я хочу выполнить какое-либо действие, когда нажата клавиша «ENTER». Тем не менее, я хочу только добавить, что делает DOJO, когда нажата клавиша. Когда я пытаюсь использовать обработчик, он заменяет функцию onKeyDown в dojox.grid._Events вместо добавления к ней. Можно ли каким-либо образом убедиться, что функция _Events вызывается перед моими добавлениями в моей функции обработчика?Как я могу добавить к событию Grid Dojo вместо его замены?

ответ

2

Вы можете подключиться к функции onKeyPress для объекта сетки. Например:

var grid = dijit.byId('myGrid'); 
dojo.connect(grid, "onKeyPress", function(evt) { 
    if(evt.keyCode === dojo.keys.ENTER) { 
    console.log('ENTER!'); 
    } 
}); 

dojox.grid._Grid класса (который является родительским классом для всех сетей) продолжаются от dojox.grid._Events, так что все из этих методов, доступные для подключения.

+0

Я добавил это в функцию addOnLoad и ничего не получил. dojo.addOnLoad (function() {<ваш код здесь>}); Пробовал и onKeyPress, и onKeyDown, попробовал как console.log, так и alert. Я использую dojo 1.3 в IE 1.6. –

+0

IE 1.6? вы имеете в виду IE6 – seth

+0

Является ли ваша сетка в div с id = 'myGrid'? Является ли объект сетки неопределенным? – seth