我正在使用条形码阅读器将键盘模式的数据转储到文本框中。它基本上可以快速输入一堆数字(大约250个字符)。我正在寻找一个起始字符“%”,当遇到这种情况时,我希望在其余数据进入时显示工作/等待图像。
这在Firefox和Chrome中完美运行,当然不是IE。在IE中,只有在将所有数据读入文本框后才显示图像,因此基本上由于某种原因延迟触发该事件。知道如何让这个工作吗?
以下是代码:
$("*").bind('keypress', function () {
if (event.keyCode == '037') {
$('#<%= this.txtData.ClientID %>').focus();
$('#processingData').fadeIn('slow', function () { });
}
});
PS。我正在听所有按键,按“%”键按下它会将焦点设置在文本框上以读取数据。
答案 0 :(得分:2)
您正在将事件处理程序绑定到页面上的每个项目。而不是这样做,使用事件委托来绑定单个事件。这应该会极大地加快速度。 IE使用较旧的JavaScript引擎,因此它比现代浏览器慢。当IE9被释放时,应更改。
.live()会将单个事件处理程序绑定到文档。此外,您需要将事件对象传递给您的函数。让我们知道如何运行:)
$("*").live('keypress', function (event) {
if (event.keyCode == 37) {
$('#<%= this.txtData.ClientID %>').focus();
$('#processingData').fadeIn('slow');
}
});