2010-07-22 31 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