2017-08-22 58 views
1

我想在博客上添加一个快捷按钮。一些按钮具有由以下代码定义的相应功能:除了在输入字段中运行基于keyCode的keyup函数()吗?

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
<script> 
$(document).keyup(function(cfunc) { 
    if (cfunc.keyCode == 83) { 
     alert("S button"); 
    } 
    if (cfunc.keyCode == 84) { 
     alert("T button"); 
    } 
    if (cfunc.keyCode == 67) { 
     alert("C button"); 
    } 
}); 
</script> 

上述代码运行良好。但是有一点问题。如果我们在输入字段中输入文本,那么这个代码会干扰。我们可以在输入字段之外运行代码吗?

例如:

<input type="text" placeholder="abcd test"/> 

如果我们输入文字"abcd test",会出现警告多次。这是因为有按钮s, t, and c。 如何修复此代码?

+0

'$(文件)。不是( ':输入')。keyup' – Rayon

回答

2

一个简单的方法,以防止因为如果发生输入或textarea的集中检查:

$(document).keyup(function(cfunc) { 
 
    if ($("textarea, input").is(":focus")) { return; } 
 
    if (cfunc.keyCode == 83) { 
 
     alert("S button"); 
 
    } 
 
    if (cfunc.keyCode == 84) { 
 
     alert("T button"); 
 
    } 
 
    if (cfunc.keyCode == 67) { 
 
     alert("C button"); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" /> 
 
<br /> 
 
<textarea>hey</textarea>

相关问题