2010-09-30 102 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