2010-09-30 2 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' перед ним. Но это не проблема ... –

+0

Не проблема. Спасибо, в любом случае! :) – Maurice

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..] 
    } 

Только если newPosition находится между 1 и totalItems оба prev и next показано

+0

Я начинаю думать, что проблема где-то в другом месте, потому что, если я сейчас щелкну по первому изображению, я ничего не вижу. Когда я нажимаю второй, я получаю только предыдущую ссылку, а также, если я нажимаю последнее изображение, я вижу предыдущую кнопку ... Проблема в том, что вокруг него нет отношения (по крайней мере, я думаю) .. – Maurice

+0

- это значение ' totalImages' меняется каждый раз, когда вы нажимаете на элемент? – Zebra

+0

Нет. Он определен выше и остается неизменным каждый раз. Я проверяю все с помощью alert(currPosition+" -> "+newPosition+" -> "+totalItems);, и все, кажется, хорошо меняется там ... newPosition - единственное, что меняется. – Maurice

Смежные вопросы