js中onkeydown事件的取消触发

yebtang 2009-11-12 03:44:59
在safari的浏览器中,我采取两套按键来控制我的js游戏,通过监测113,也就是F2键来选择触发哪套按键。

但刚才做实验发现,单纯的
var menu=0;
某函数控制menu;

if(menu=0)
{
.onkeydown=xxx1;
}
else
{
.onkeydown=xxx2;
}

其实没有任何作用,最终的结果是xxx1,xxx2都会被onkeydown触发,请问如何才能控制触发哪个函数呢?
...全文
1350 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yebtang 2009-11-12
  • 打赏
  • 举报
回复
真不好意思,刚停电了。仔细检查后确实如6楼所说,return一个false就可以了。第一次发贴,本来想修改的却不知道怎么弄,只好就这样了。新手表达不太清楚,麻烦大家拉~~~
makeppy 2009-11-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liu20023 的回复:]
没看明白什么意思,UP
[/Quote]建议楼主修改下问题,有点不明白哦 O(∩_∩)O谢谢
liu20023 2009-11-12
  • 打赏
  • 举报
回复
function fun1(){
alert("F2");
}
function fun2(){
alert("Other key");
}
function document.onkeydown(){
if(event.keyCode == 113)
{
fun1();
}else{
fun2();
}
}

不知道是不是能符合LZ的要求
草根醉秋意 2009-11-12
  • 打赏
  • 举报
回复
if(menu=0) ==>>if(menu==0)

<div id="div1" style="margin: 20px; width: 100px; padding: 10px; height: 100px; border: 5px solid #ccc">
</div>

<script type="text/javascript">
var i = 1;
var div = document.getElementById("div1");
if (i == 0) {
div.onmouseover = function() { alert("i=0"); }
} else {
div.onmouseover = function() { alert("i!=0"); }
}
</script>

yebtang 2009-11-12
  • 打赏
  • 举报
回复
function xxx1()
{
........
}
yebtang 2009-11-12
  • 打赏
  • 举报
回复
不好意思我没有表述清楚

即采用
document.onkeydown=xxx1;
之后

如何令onkeydown发生时,xxx1函数不运行?
hengly88 2009-11-12
  • 打赏
  • 举报
回复
function KeyDownListener(evt){
var evt = evt || window.event;

if(evt.keyCode == 'your code number'){
//do the things you want.
}
}
qqzeng-ip 2009-11-12
  • 打赏
  • 举报
回复
  if(event.keyCode == 13)
{ return false;
}
yebtang 2009-11-12
  • 打赏
  • 举报
回复
伪代码伪代码.....
hengly88 2009-11-12
  • 打赏
  • 举报
回复
if(menu=0) 这句条件语句错了。。if(menu == 0)
yebtang 2009-11-12
  • 打赏
  • 举报
回复
即采用document.onkeydown=xxx1
之后
如何令onkeydown发生时,xxx1函数不运行
liu20023 2009-11-12
  • 打赏
  • 举报
回复
没看明白什么意思,UP
yebtang 2009-11-12
  • 打赏
  • 举报
回复
下午的人好少......有没有办法取消这个函数与他的关联呢
一、事件基础 1.事件函数 obj.on-事件名=fn 定义事件的时候,事件函数不会自动执行,当事件触发的时候,会执行 2.事件对象 1)事件对象:当浏览器执行事件的时候,会将所有与事件相关的内容(鼠标位置,触发的目标等)封装为一个对象,并且在触发事件的函数,在事件函数进行传递 Event 常见属性: clientX clinetY 鼠标相对客户端的位置 pageX pageY 鼠标相对于页面的位置 type 事件类型 target 事件作用的节点对象 2)事件的兼容性: 在低版本的IE和火狐上,事件传递机制不一样,需要通过window.event来获取事件 window.event||e 二、事件绑定和取消 1. 事件绑定 添加事件的做法,若出现为同一个节点绑定了同名的事件,会出现覆盖效果。 addEventListener(事件名,事件函数,isBubble) isBubble :默认为false 事件是冒泡机制 true 事件为捕获机制 注意:事件名没有on前缀 removeEventListener(事件名,事件函数,isBubble) 注意:一定要保证移除事件时和添加事件时是同一个事件函数 事件绑定兼容性问题:在低版本IE(IE 6/7/8)不支持addEventListener和removeEventListener, 在低版本IE可以使用: attachEvent(事件名,事件函数) 绑定事件 detachEvent 取消事件 注意:事件名 包含on前缀 两种事件绑定的区别: 1.addEventListener: 事件名没有on前缀 可以选择冒泡或者捕获机制 this 指事件调用者 同名事件的执行顺序:先添加先执行 2.attachEvent 事件名需要添加on前缀 不能选择冒泡或捕获的机制 this 指window对象 同名事件的执行顺序:后添加先执行 三、事件事件流:事件触发之后会在DOM树的节点之间传递 冒泡:事件由最具体的元素(事件触发者),层层向外传递(传递给父节点),直到window 对象停止 捕获:事件由最外层元素(window),层层向内传递,直到最具体的元素 事件流机制有时候会对页面效果造成一些影响,所以需要拦截事件的冒泡: 兼容性写法: window.event?window.cancelBubble=true:e.stopPropagation() 四、拦截浏览器的默认行为 拦截浏览器自带的一些事件行为,例如:a超链接的跳转等.... 对象.事件名 return false 对象.addEventListener() e.preventDefault() 对象.attachEvent() e.returnValue=false; retrun false; 五、常见事件 右键事件:oncontextmenu 键盘事件:onkeydown onkeyup onkeypress 键盘事件的属性: key 在IE不支持 键名称 keyCode 键码 滚轮事件: Onwheel 标准浏览器和IE 对象.addEventListener(“DOMMouseScroll”,事件函数,false) 火狐 滚轮事件对: wheelDelta 标准浏览器和IE 120 -120 下 120 上 detail 获取 3 六、事件的委托 事件委托:事件添加元素父节点(原理:事件的冒泡机制) 将事件添加到父元素上,当事件发生时,父元素会找到对应触发事件的子元素去处理,后期添加的子元素,依然有这个事件

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧