2013-02-08 59 views
0

我有這個滑塊,它在IE和Chrome中工作正常,但在Firefox中有一個問題,它加載所有圖片一次,但它不會再回來並加載它們,在控制檯我得到這個錯誤 「語法錯誤:缺少]之後元素LIS」中的setTimeout線(FUNC,900)與js滑塊firefox問題

這是代碼

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]); 
    } 
} 

回答

0

有一個在你粘貼代碼中沒有語法錯誤。它必須在其他地方。將它粘貼到jsfiddle中,它不會拋出語法錯誤。