Javascript 使用jQuery按下键时显示图像
我正在尝试制作一个简单的应用程序,当用户按下键盘上的一个键时,就会出现与该字母对应的图像。我想对整个字母表(a,b,c…)都这样做 如果a被按下,a.jpg会出现在我的页面上,如果r被按下,r.jpg会出现,依此类推 我本来打算用一大串if-else语句来做这件事的,但我肯定还有别的方法Javascript 使用jQuery按下键时显示图像,javascript,jquery,Javascript,Jquery,我正在尝试制作一个简单的应用程序,当用户按下键盘上的一个键时,就会出现与该字母对应的图像。我想对整个字母表(a,b,c…)都这样做 如果a被按下,a.jpg会出现在我的页面上,如果r被按下,r.jpg会出现,依此类推 我本来打算用一大串if-else语句来做这件事的,但我肯定还有别的方法 var ctrlPressed = false; $(window).keydown(function(evt) { if (evt.which == 17) { // ctrl ctrlPress
var ctrlPressed = false;
$(window).keydown(function(evt) {
if (evt.which == 17) { // ctrl
ctrlPressed = true;
alert('sdf');
}
})
我将这样做:
var letters = "abcdefghijklmnopqrstuvwxyz";
letters = letters.split("");
//I'm lazy; you should define an array of letters
$(window).keydown(function(e){
key = e.which - 65; //makes a-z = 1-27
key = letters[key];
$('img[src="' + key + '.jpg"]').show();
}
这是一张工作票
来源
索引映射到evt.which值的图像引用数组怎么样
var images=[];
images[64]='a.jpg';
images[65]='b.jpg';
images[66]='c.jpg';
//...etc...
$(window).keydown(function(evt) {
var image=images[evt.which]'
if(image){
alert(image);
}
})
有点难看,可能不是最有效的,但很容易理解:)我会得到键值,然后再匹配一次A-z。尝试以下方法:
$(window).keydown(function(e) {
var key = String.fromCharCode(e.which).toLowerCase();
if(/[a-z]/i.test(key)) {
alert(key+'.jpg');
}
});
演示:似乎是字母对应ASCII值的事件。因此,您可以执行以下操作:
$(window).keydown(function(evt) {
if (evt.which >= 65 && evt.which <= 90){
$('img[src="' + String.fromCharCode(evt.which).toLowerCase() + '.jpg"]').show();
}
});
$(窗口).keydown(函数(evt){
如果(evt.which>=65&&evt.which,则应使用字母键代码命名图像文件
例如,输入的字母“a”必须命名为“97.jpg”
因此,您可以从jquery调用它,如下所示:
$(document).ready(function(){
$("#input").bind('keypress', function (e) {
console.log(e.which); //or alert(e.which);
$("#Image").attr("src", e.which + ".jpg");
});
});
为什么你的例子是关于ctrl
键的,而问题是关于a-z键的?你是在问如何映射f.exctrl+a
?与其得到keyCode
,我建议你得到它的值,并结合后缀key\u value+”。jpg“
,它更简单