0

この単純な関数を実行するとFirefoxがクラッシュしますが、Chrome、Safari、IEではこれを実行するのに問題はありません。

jQuery(document).ready(function($) {

    if($('.fside_img').length>0) {
        gundeToggling(0,2000);
    }

});

function gundeToggling(prev,speed) {

    // 1. Choose a victim
    var victim = Math.floor(Math.random()*7); // number between 1 and 6

    // 2. Check if allowed or back to 1
    var alpha = $('#dn-a-'+victim);
    var beta = $('#dn-b-'+victim);

    var ctf_val = parseInt($('#ct_fones').val()); // Menge der sichtbaren prims
    var cts_val = parseInt($('#ct_sones').val()); // Menge der sichtbaren secs

    if(alpha.is(':visible') && ctf_val>2 && victim!=prev) {
        alpha.fadeOut(speed);
        beta.fadeIn(speed,function() {
            $('#ct_fones').val(ctf_val-1);
            $('#ct_sones').val(cts_val+1);
            gundeToggling(victim,speed);
        });
    } else if(beta.is(':visible') && cts_val>2 && victim!=prev) {
        beta.fadeOut(speed);
        alpha.fadeIn(speed,function() {
            $('#ct_fones').val(ctf_val+1);
            $('#ct_sones').val(cts_val-1);
            gundeToggling(victim,speed);
        });
    } else {
        gundeToggling(prev,speed);
    }
}

6枚の画像をランダムな順序でフェードイン/フェードアウトする機能です。また、次の画像を繰り返し検索しようとしましたが、Firefoxがクラッシュします。どうしたの?

4

2 に答える 2

0

こんにちは、ご協力ありがとうございます。クラッシュを回避できたので、setTimeout に関するヒントはデバッグに非常に役立ちました。

しかし、本当の問題は次のとおりでした。

:visible セレクターは、他のすべてのブラウザーとは異なり、Firefox で動作します。そのため、Firefox の jQuery は、可視コンテンツ ブロック (欠落した画像) が不可視であると考えており、これは、スクリプトが許可するより多くの画像が不可視であるため、無限ループの原因でした。解決策: 欠落している画像の Alt-Text :-P

于 2013-01-15T11:58:54.000 に答える
0

アイデア: 別のブラウザー (chrome、つまり、opera、safari) で試してみてください。多くのデバッグを実行してみてください (コメントとアラートを配置して、どこで実行でき、どこで js 全体ではないかを確認してください) 他のすべてのタブを閉じます。

アイデア #2: カルーセルでもこの​​問題が発生しましたが、修正は簡単でした。Firefox のすべての拡張機能とプラグインを無効にします。(わかりました、この問題はfirefoxでのみ発生しました。他のすべてのブラウザは引き続き正常に動作します...)

于 2013-01-15T11:13:10.113 に答える