2011-04-12 127 views
1

我想開發一個使用流行的slideTo插件的jQuery滑塊。我掀起了一個jfiddle,以便您可以看到我製作的滑塊以及代碼的示例: http://jsfiddle.net/Mh7Mh/Jquery滑塊使用scrollTo越野車

結果稍有錯誤。當你到達最後一張幻燈片時,它似乎沒有回到原來的位置,它應該。看看我的jQuery - 我創建了一個if語句來重置變量,它告訴scrollTo在哪裏滾動到To。代碼很自我解釋。

任何幫助正在解決這將是一個巨大的幫助。謝謝!

回答

1

你在這些函數的邏輯中有多個錯誤。這是你的JS的改版:

// you were defining these vars in every function, not as global vars 
var jesse = 0; 
var lastSlide = 3; 
// your numSlide var was off by one, renamed it to lastSlide 

// you were adding these events multiple times for each li 
$("#controls a.next").click(function() { 
    (jesse==lastSlide)?(jesse=0):(jesse++); 
    $("#contentSlider").stop().scrollTo('li:eq(' + jesse + ')', 500); 
    return false; 
}); 

$("#controls a.prev").click(function() { 
    (jesse==0)?(jesse=lastSlide):(jesse--); 
    $("#contentSlider").stop().scrollTo('li:eq(' + jesse + ')', 500); 
    return false; 
}); 

?:的使用被稱爲三元操作。它類似於if/else statement

它的一般用法是:

foo=(booleanExpression)?bar:baz; 
// it is equal to 
if(booleanExpression){ 
    foo=bar; 
}else{ 
    foo=baz; 
} 
+0

我是一個jQuery的新手,所以你可以評論這條線,所以我可以瞭解發生了什麼:(jesse == lastSlide)?(jesse = 0):(jesse ++); – JCHASE11 2011-04-12 00:41:36

+0

非常感謝,順便說一下! – JCHASE11 2011-04-12 00:41:54

+0

你也可以使用你的if/else語句。我只是喜歡使用[三運營商](http://en.wikipedia.org/wiki/Conditional_(編程)#As_a_ternary_operator)簡單的語句。 – Khez 2011-04-12 00:42:55

1

你有一個錯誤。有四種幻燈片,指數0,1,2,3

所以使用這行:

if (jesse == numSlides-1) { 

和這些行:

 if (jesse == 0) { 
     jesse = numSlides -1; 

即使是這樣工作的,它不看起來不錯。你會明白我的意思。

+0

雅,做它。非常有意義。謝謝! – JCHASE11 2011-04-12 00:38:58

+0

但你的權利,它仍然是越野車,最有可能是由於@Khez的答案...我爲每個li多次添加事件 – JCHASE11 2011-04-12 00:40:29