日期:2014-05-17  浏览次数:20709 次

jQuery使用hotkeys多次执行
在使用hotkeys监听按键的时候点击一个被监听的按键,会出现执行n次(监听n个按键),请问怎么能让他只执行一次呢?

代码如下

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="js/jquery-1.6.2.min.js" ></script>
<script type="text/javascript" src="js/jquery.hotkeys.js" ></script>

<script>
function demo()
{
$(document).bind('keydown', 'a' ,function(){
alert("a");
return false;});
$(document).bind('keydown', 'b' ,function(){
alert("b");
return false;});
}
$(document).ready(demo);
</script>
</head>

<body>
press a or b
</body>
</html>

点击a会alert两次,如果将代码改为

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript" src="js/jquery-1.6.2.min.js" ></script>
<script type="text/javascript" src="js/jquery.hotkeys.js" ></script>

<script>
function demo()
{
$(document).bind('keydown', 'a' ,function(){
alert("a");
return false;});
$(document).bind('keydown', 'b' ,function(){
alert("b");
return false;});
$(document).bind('keydown', 'c' ,function(){
alert("c");
return false;});
}
$(document).ready(demo);
</script>
</head>

<body>
press a or b
</body>
</html>

点击a会alert3次,求解决办法

------解决方案--------------------
function demo()
{
$(document).bind('keydown', 'a' ,function(){
alert("a");
return false;});
$(document).bind('keydown', 'b' ,function(){
alert("b"); 
return false;});
$(document).bind('keydown', 'c' ,function(){
alert("c"); 
return false;});
}
$(document).ready(demo);

修改为

$(document).bind('keydown', 'a' ,function(){
alert("a");
}
$(document).bind('keydown', 'b' ,function(){
alert("b"); 
}
$(document).bind('keydown', 'c' ,function(){
alert("c"); 
}
或者做一个监听事件 ~~然后判断按下去的 KEY值 跟你的 A B C 做判断

你这个代码 好比就是绑定了3个监听事件 每次都会判断 3遍