2009-07-13 28 views
0

我有一個圖像滑塊,我爲我的網站建立,我已設置爲每3秒滑動一次(在診斷後會比較慢,但我不喜歡等待10秒來查看出了什麼問題)。我還設置了它,以便在它自動滑動之前,它會檢查toSlide變量是否設置爲1(默認)。當用戶點擊下一個/上一個鏈接或某個幻燈片時,它會將toSlide設置爲0.爲什麼我的變量會自行重置?

我的問題是它會再次自動滑動,然後將toSlide重置爲1,我無法弄清楚爲什麼。請有人幫助我嗎?

你可以看到HTML上my site,這裏是JavaScript:

//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 2009-07-13 14:59:48

+0

非常真實。唉! – Kerrick 2009-07-14 01:20:14

回答

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

如果(toSlide = 1)應該是如果(toSlide == 1)

這咬傷在C很多人風格語言

0

這些傢伙的答案是解決方案。我不知道你是否已經使用它,但用Firebug可以很容易地找到代碼中的這些錯誤。

相關問題