0

次のコードは、作成中のアプリケーションのビジュアル フィルターとして使用されます。基本的に、ユーザーが ID 'filter' のテキスト ボックスに何かを入力すると、以下のコードが実行され、一致するものが非表示になります。

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

このコードは Firefox と Chrome では正常に動作しますが、IE7 では、私が気に入らないことが 2 つあります。

1) 選択した div はフェードアウト/フェード インしません - 表示されるだけです..

問題 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 に答える