2010-07-22 55 views
1

請告訴我什麼變量在循環中改變,所以我可以創建一個if else語句。我不是開發者,所以我真的需要幫助。這裏的代碼什麼變量正在改變?

$(document).ready(function(){ 

$("#health").show(); 
$("#health").hide(); 
$("#billing").hide(); 

var arr = [ 
    $("#pension"), 
    $("#health"), 
    $("#billing") 
]; 
var cur = 0, nxt = 1; 

function looptour(ncur){ 
if(ncur!=undefined) { 
    arr[cur].hide(); 
    arr[ncur].show(); 
    cur = ncur; 
    nxt = (cur + 1 < arr.length) ? cur + 1 : 0; 
} 
else { 
setInterval(function() { 
    arr[cur].fadeOut(2000); 
    arr[nxt].fadeIn(2000); 
    cur = (cur + 1 < arr.length) ? cur + 1 : 0; 
    nxt = (nxt + 1 < arr.length) ? nxt + 1 : 0; 
},6000); 
} 
} 
looptour(); 

這是我想要做的......我只是不知道要使用的變量。 這裏的想法,我有3個按鈕「1 2 3」我只是想添加一個類的各個按鈕 1是養老金 2是健康 3是用於計費

謝謝!

if() { 
$("#tournums ul li:first a").addClass("num_active"); 
} else if() { $("#tournums ul li:eq(1) a").addClass("num_active"); 
} else if() { $("#tournums ul li:eq(2) a").addClass("num_active"); 
} 
+2

你在做什麼?你沒有向'looptour()'傳遞任何東西,所以'ncur'將永遠是未定義的。我從您提出的另一個問題中認識到我的代碼的一瞥。 http://stackoverflow.com/questions/3294955/div-id-fade-code這是否給你想要的效果?你只是想添加一個基於當前可見的類的類? – user113716 2010-07-22 23:52:47

+0

請分享一些HTML。 – Mottie 2010-07-22 23:55:06

+0

是的,它工作正常。我現在想要的是什麼變量在循環中變化? – Ryan 2010-07-22 23:56:54

回答

2

編輯:比我原來的答案好一點,因爲它緩存了元素。

如果我知道你需要什麼正確的,我應該這樣做:

試試看:http://jsfiddle.net/aTTrr/1

var arr = [ 
    $("#pension"), 
    $("#health").hide(), 
    $("#billing").hide() 
]; 
var $aElements = $("#tournums ul li a"); 
var cur = 0, nxt = 1; 

setInterval(function() { 
    arr[cur].fadeOut(2000); 
    arr[nxt].fadeIn(2000); 
    $aElements.removeClass('num_active'); 
    $aElements.eq(nxt).addClass("num_active"); 
     // Modulus operator method courtesy of Nick Craver (see comment below) 
    cur = (cur + 1)%arr.length; 
    nxt = (nxt + 1)%arr.length; 
},6000); 

原文:

我承擔num_active一次只在頁面上的一個元素上。

var arr = [ 
    $("#pension"), 
    $("#health").hide(), 
    $("#billing").hide() 
]; 
var cur = 0, nxt = 1; 

setInterval(function() { 
    arr[cur].fadeOut(2000); 
    arr[nxt].fadeIn(2000); 
      // remove num_active class from the current one 
    $('#tournums .num_active').removeClass('num_active'); 
      // add num_active class using nxt as the index 
    $("#tournums ul li:eq(" + nxt + ") a").addClass("num_active"); 
    cur = (cur + 1 < arr.length) ? cur + 1 : 0; 
    nxt = (nxt + 1 < arr.length) ? nxt + 1 : 0; 
},6000); 
+0

+1 - 對'cur' /'nxt'增量的小提示,使用一個模數來做一點簡單:http://jsfiddle.net/nick_craver/aTTrr/2/ – 2010-07-23 00:29:34

+0

你做得對!問題只在CSS上。這次真是萬分感謝。 – Ryan 2010-07-23 00:29:57

+0

@尼克 - 感謝您的提示!我希望能做到這一點。很好的解決方案。 :o) – user113716 2010-07-23 00:39:13

0

我並不確切地知道你想要做什麼,但我認爲這將有助於

if($("#health").attr("display") == "block") 
{ 
    $("#tournums ul li a").addClass("num_active"); 
} 
else 
{ 
    $("#tournums ul li a").removeClass("num_active"); 
} 

告訴我你想要做的,或者至少給一個鏈接的例子是什麼。

+0

我想知道什麼變量從0,1,2變化...所以我可以使用該變量,也許做if-else語句 – Ryan 2010-07-22 23:51:41

+0

我試過你的代碼,它不工作? – Ryan 2010-07-22 23:52:07