我有这个代码:
$('#typer').keypress(function(e){
var code = (e.keyCode ? e.keyCode : e.which);
if (code == '13') {
$.sound.play("cr.wav",{timeout:1000});
} else if (code == '8') {
$.sound.play("del.wav",{timeout:1000});
} else if (code == '27') {
$.sound.play("asswipe.wav",{timeout:1000});
} else {
$.sound.play("key.wav",{timeout:1000});
}
});
现在,出于某种原因 - 我只能在此框中输入一个字符。声音播放一次,然后就不再播放了。
这在 IE 中工作正常...只是 FireFox...
插件链接:http://code.google.com/p/jqueryjs/source/browse/trunk/plugins/sound/jquery.sound.js?r=5750
有没有人用过这个插件....?
最佳答案
首先,e.which 是一个数字,而不是一个字符串,所以你应该去掉单引号:使用 code == 13
, 不是 code == '13'
. switch 语句可能会更好地为您服务(尽管这只是一个偏好问题)。
其次,我认为问题不在于插件。不使用插件,这有同样的问题:
$('#typer').keypress(function(e) {
var snd = $('<embed hidden="true" loop="false" src="key.wav" autostart="true" height="0" />');
snd.appendTo("body");
setTimeout(function() { snd.remove(); }, 1000);
});
FF 和 Chrome 似乎不能很好地处理 <embed>
动态添加到它们的标签。您可能想要寻找一个不同的插件,一个不使用标签的插件。我不是 Flash 的粉丝,但可能有一些插件使用它,而且效果很好。
关于jQuery KeyPress 限制我在 TextArea 上的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3131845/