0

以下代码用作我正在构建的应用程序的可视过滤器。基本上,当用户在 id 为“过滤器”的文本框中输入内容时,下面的代码会运行以隐藏匹配的内容。

$('#filter').keyup(function() {
        delay(function(){
            $(".patient:not(:contains('" + $('#filter').val() + "'))").fadeOut();
            $(".patient:contains('" + $('#filter').val() + "')").fadeIn();
        }, 300 );
        });

该代码在 Firefox 和 Chrome 中运行良好,但在 IE7 中发生了我不喜欢的两件事:-

1) 选定的 div 不会淡出/淡入 - 它们只是出现.. 2) 有时,我从 IE 收到一个错误,即脚本花费的时间过长并且可能变得无响应。

关于问题 2,我读过将控制权返回给浏览器(再次可能使用超时)可能会阻止该问题,但我不确定是否可以使用我的代码或如何做到这一点。

你们能帮忙吗?

(PS - 作为记录,我必须在我的组织中使用 IE7。不好,我知道,但我对此无能为力,以防你的解决方案涉及更改浏览器 :))

4

1 回答 1

0

我设法修复它并防止错误。也许我只是对浏览器要求太多,所以我将代码更改如下:-

$('#filter').keyup(function() {
        delay(function(){
            $(".patient").hide();
            $(".patient:contains('" + $('#filter').val() + "')").fadeIn();
        }, 300 );
        });

这现在非常完美。

于 2012-12-05T10:26:32.477 回答