Хитрость в том, что функция 'fn' - это удар.
Экспериментально, вы можете видеть, что тип функции для fn принимает два параметра. Первый параметр содержит ТИП события. Второй содержит ... и это винтично: массив, содержащий кодовую точку с индексом 0 и фактический объект события с индексом 1.
Итак, немного изменив код, он должен выглядеть так:
function callback(type, args)
{
var event = args[1]; // the actual event object
alert('Click');
// like stopEvent, but the event still propogates to other YUI handlers
YAHOO.util.Event.preventDefault(event);
}
var kl2 = new YAHOO.util.KeyListener(document, { ctrl:true, keys:78 }, {fn:callback});
kl2.enable();
Кроме того, ради любви к lisp, не используйте необработанные кодовые точки в своем коде. Используйте 'N'.charCodeAt (0) вместо "78". Или оберните это как функцию
function ord(char)
{
return char.charCodeAt(0);
}