键盘事件对象:
function someKeyDownHandler(eventObj)
{
switch(eventObj.keyCode){
case dojo.keys.F10:
console.debug('you may press F10');
break;
}
}
eventObj.shiftKey
dojo.stopEvent(eventObj) 等价于 eventObj.stopPropagation(); eventObj.preventDefault();
关联处理函数
关联处理函数与DOM事件:dojo.connect(obj,event,context,handler)
等同于 W3C DOM的obj.addEventListener(event,dojo.hitch(context,handler));
利用dojo.addOnLoad执行初始化代码。可以被调用多次,所有作为参数传入的函数严格按照它们被注册的顺序执行。
dojo.addOnLoad的调用参数可以是一个函数的引用或者一个对象的函数名。
如: dojo.addOnLoad(f);
dojo.addOnLoad(function(){});
dojo.addOnLoad(o,"f");
关联用户自定义事件
function giveMessage(functionName,args){
var message = "In" + functionName + "; the arguments are: ";
dojo.forEach(args,function(args){message+= args.toString()+ " ";});
console.log(message);
}
function printArgs(){
giveMessage("printArgs",arguments);
}
function firstHandler(a1,a2){
giveMessage("firstHandler",arguments);
}
function secondHandler(a1,a2){
giveMessage("secondHandler",[a1,a2]);
}
dojo.connect("printArgs",null,"firstHandler");
dojo.connect("printArgs",null,"secondHandler");
printArgs(1,2);
触发函数 处理函数
dojo.connect("printArgs",...) 第一个参数为字符串时,关联的为用户自定义函数。
结果会显示:
InprintArgs; the arguments are: 1 2
InfirstHandler; the arguments are: 1 2
InsecondHandler; the arguments are: 1 2