0

このスライダーがあり、IE と chrome では正常に動作しますが、Firefox では問題が発生します。すべての画像を一度にロードしますが、もう一度戻ってロードすることはありません。コンソールでこのエラー「SyntaxError: missing ] after setTimeout(func,900) の行に要素 lis"

これがコードです

function pic_loader() {
    //alert('s');
    var func = new function () {}
    $folder = $('#foldername').attr('value');
    $files = document.getElementById('filename').value;
    $num = document.getElementById('num').value;
    $filenames = $files.split("##");
    var $img = [];
    var $link = [];
    if ($num > 1) {
        for ($i = 1; $i <= $num; $i++) {
            $img[$i] = $folder + "/" + $filenames[$i];
            if ($i == 1) {
                $link[$i] = "<img id='slide[" + $i + "]' width=380 src=" + $img[$i] + ">";
                $("#load_here").append($link[$i]);
                $first = document.getElementById('slide[1]');
                $first.style.display = "none";
                $($first).fadeIn(800);
            } else {
                $link[$i] = "<img id='slide[" + $i + "]' width=380 src=" + $img[$i] + " style='display:none'>";
                $("#load_here").append($link[$i]);
            }

        }
        $i = 1;
        var $loop = setInterval(function () {
            //alert('x');
            $j = $i + 1;
            $current = document.getElementById('slide[' + ($i++) + ']');
            $next = document.getElementById('slide[' + ($j) + ']');
            $($current).fadeOut(800, function () {
                $($next).fadeIn(800);
            });
            if ($j > $num) {
                $($next).fadeOut(800);
                setTimeout(func, 900);

                function func() {
                    clearInterval($loop);
                    $("#load_here").html("");
                    pic_loader();
                }

            }
        }, 4500);
    } else {
        $i = 1;
        $img[$i] = $folder + "/" + $filenames[$i];
        $link[$i] = "<img id='slide[" + $i + "]' width=380 src=" + $img[$i] + ">";
        $("#load_here").append($link[$i]);
    }
}
4

2 に答える 2

0

まず、id属性に文字を含めることはできませ[]

name atrributein place odを使用したり、 likeidを作成したりできますidslide_1,slide_2,....

属性を使用nameすると、次のような関数を使用できます。 $current = document.getElementsByName('slide[' + ($i++) + ']');

この投稿は、jQuery またはプレーン Javascript を使用して HTML 入力テキスト ボックスの配列にアクセスするという問題について詳しく説明するのに役立ちます

于 2013-02-08T05:10:01.783 に答える
0

貼り付けたコードに構文エラーはありません。他の場所にあるはずです。jsfiddle に貼り付けます。構文エラーは発生しません。

于 2013-02-08T05:05:40.010 に答える