2009-07-13 9 views
0

私は自分のウェブサイト用に構築したイメージスライダを持っており、3秒ごとにスライドするように設定しています(診断後は遅くなりますが、間違っているかどうかを確認するのに10秒待たないでください)。また、自動スライドする前に、toSlide変数が1(デフォルト)に設定されているかどうかをチェックするように設定しました。ユーザーが次/前のリンクまたは特定のスライドをクリックすると、toSlideが0に設定されます。なぜ私の変数は自分自身をリセットし続けますか?

私の問題は、自動的にスライドしてtoSlideを1に戻してしまうことです。なぜ。誰も私を助けてくれますか?

あなたはJavascriptをmy site上のHTMLを見て、ここにあることができます。

//Featured Work Image Slider 
// sC = sliderCount 
// sA = slideAmount 
// pH = pictureHeight 
// sT = slideTime 
var sC = 1; 
var pH = 364; 
var sT = 364 
var toSlide = 1; 
function slide(ms) { 
    $('#featured-box li').stop().animate({'top':sA},ms); 
    $('.sN').css({color:'#598dbe'}); 
    $('#sN'+sC).css({color:'#464646'}); 
    $('#fD > div').fadeOut(ms,function(){ 
     $(this).css({display:'none'}); 
    }); 
    $('#fD-'+sC).fadeIn(ms,function(){ 
     $('#fD-'+sC).css({display:'block'}); 
    }); 
    console.log(toSlide); 
} 
function autoSlide(ms) { 
    if(sC < 4) { 
     sC++; 
     sA = -(sC - 1) * pH; 
    } else { 
     sC = 1; 
     sA = 0; 
    } 
    slide(ms); 
    if(toSlide = 1) { 
     setTimeout ("autoSlide(sT)", 3000); 
    } 
} 
$(document).ready(function() { 
    setTimeout ("autoSlide(sT)", 3000); 
    $('#sL').click(function(){ 
     toSlide = 0; 
     if(sC > 1) { 
      sC--; 
      sA = -(sC - 1) * pH; 
     } else { 
      sC = 4; 
      sA = -3 * pH; 
     } 
     slide(sT); 
     return false; 
    }); 
    $('#sN').click(function(){ 
     toSlide = 0; 
     if(sC < 4) { 
      sC++; 
      sA = -(sC - 1) * pH; 
     } else { 
      sC = 1; 
      sA = 0; 
     } 
     slide(sT); 
     return false; 
    }); 
    $('.sN').click(function(){ 
     toSlide = 0; 
     var sNid = this.id.split('sN'); 
     sC = sNid[1]; 
     sA = -(sC - 1) * pH; 
     slide(sT); 
     return false; 
    }); 
}); 
+0

ハハ「この変数をリセットする場所はどこですか?」変数はリセットされません。コンピュータは、私たちが何をするかだけを指示します。 – Travis

+0

とても真実です。ああ! – Kerrick

答えて

9
if (toSlide = 1) { 

これは割り当てない比較です。あなたは何をしたい:

if (toSlide === 1) { 

変更されたフル機能:

function autoSlide(ms) { 
    if(sC < 4) { 
     sC++; 
     sA = -(sC - 1) * pH; 
    } else { 
     sC = 1; 
     sA = 0; 
    } 
    slide(ms); 
    if(toSlide === 1) { 
     setTimeout ("autoSlide(sT)", 3000); 
    } 
} 
+0

ああ、ありがとう!私はJavascriptで新しいので、私は2つの違いを認識していない。 – Kerrick

2

(toSlide == 1)

これはCで、多くの人々をかましている場合(toSlide = 1)するかどうスタイルの言語

0

これらの人の答えは解決策です。私はあなたがすでにそれを使用しているかどうかは分かりませんが、Firebugではコード内のそのようなバグを追跡するのは簡単です。

関連する問題