JQuery& IE - 事件触发延迟

时间:2010-09-23 20:04:00

标签: jquery

我正在使用条形码阅读器将键盘模式的数据转储到文本框中。它基本上可以快速输入一堆数字(大约250个字符)。我正在寻找一个起始字符“%”,当遇到这种情况时,我希望在其余数据进入时显示工作/等待图像。

这在Firefox和Chrome中完美运行,当然不是IE。在IE中,只有在将所有数据读入文本框后才显示图像,因此基本上由于某种原因延迟触发该事件。知道如何让这个工作吗?

以下是代码:

$("*").bind('keypress', function () {
    if (event.keyCode == '037') {
        $('#<%= this.txtData.ClientID %>').focus();
        $('#processingData').fadeIn('slow', function () { });
    }
});

PS。我正在听所有按键,按“%”键按下它会将焦点设置在文本框上以读取数据。

1 个答案:

答案 0 :(得分:2)

您正在将事件处理程序绑定到页面上的每个项目。而不是这样做,使用事件委托来绑定单个事件。这应该会极大地加快速度。 IE使用较旧的JavaScript引擎,因此它比现代浏览器慢。当IE9被释放时,更改。

.live()会将单个事件处理程序绑定到文档。此外,您需要将事件对象传递给您的函数。让我们知道如何运行:)

$("*").live('keypress', function (event) {
    if (event.keyCode == 37) {
        $('#<%= this.txtData.ClientID %>').focus();
        $('#processingData').fadeIn('slow');
    }
});