2010-09-30 104 views
0

我正在一个简单的if/else声明显示下一个或上一个链接,但不知何故我的检查不起作用。下面的代码问题与变量


var newPosition = currPosition; 
$(".imageNavLink").click(function(event){ 
event.preventDefault(); 
newPosition = (this.rel == "next") ? newPosition + 1 : newPosition - 1; 
var newImageLink = this.title; 
var clickAction = this.rel; 
var newImage = new Image(); 
$(newImage).load(function(){ 
    newWidth = this.width, newHeight = this.height+35; 
    if(newPosition == totalItems){ 
    [.. Show 'previous' link ..] 
    }else if(newPosition == 1){ 
    [.. Show 'next' link ..] 
    }else{ 
    [.. Show 'previous' and 'next' link ..] 
    } 
}); 
newImage.src = this.title; 
}); 
  • currPosition保持元件的当前位置(数字),以保持在轨道与计数
  • totalItems被总相关联的图像的数字值

如果我点击第一张图片,我不断看到前一个链接,当我从第二张图片开始时,我不断地看到两个链接,当我开始使用最后一张图片时,我不断地看到以前的链接..

回答

0

我不知道这是它,但是,

newWidth = this.width, newHeight = this.height+35; 

不应该,this.width后是;

+0

更可能的是,他想在它前面的一个'var'。但这不是问题... – 2010-09-30 16:25:32

+0

的确不是问题。不管怎么说,还是要谢谢你! :) – Maurice 2010-09-30 16:46:34

0
if(newPosition == totalItems){ 
    [.. Show 'previous' link ..] 
    }else if(newPosition == 1){ 
    [.. Show 'next' link ..] 
    }else{ 
    [.. Show 'previous' and 'next' link ..] 
    } 

重写此:

if(newPosition>1 && newPosition<totalItems){ 
    [.. Show 'previous' and 'next' link ..] 
    }else if(newPosition == 1){ 
    [.. Show 'next' link ..] 
    }else if(newPosition == totalItems){ 
    [.. Show 'previous' link..] 
    } 

只有newPosition1totalItems之间都将prevnext显示

+0

我开始认为问题是在别的地方,因为如果我现在点击第一张图片,我什么都看不到。当我点击第二个我只得到以前的链接,如果我点击最后一个图像,我看到前一个按钮...问题是,没有亲属(至少我认为)在它周围.. – Maurice 2010-09-30 16:44:42

+0

是值'每次点击一个项目时,totalImages'会发生变化? – Zebra 2010-09-30 16:57:30

+0

没有。它被定义在上面,并且每次都保持不变。我用alert(currPosition+" -> "+newPosition+" -> "+totalItems);检查了所有内容,并且所有内容似乎都发生了改变... newPosition是唯一一个更改.. – Maurice 2010-09-30 17:00:24