Не работает скрипт
Есть два похожих кода, но первый работает
$(".previous").click(function(){
var pr = $('#imgwrape').attr('imgnumber');
if (pr=="1")
{
var r = 4
}
else
{
var r = pr - 1
};
$('#imgwrape').html('<img id="imgbigsize" src="img/main/' + r + 'big.jpg">');
$('#imgwrape').attr('imgnumber', r);
$('#imgboxname').html('Иллюстрация ' + r + ' из 4');
});
а второй нет
$('#imgbigsize').click(function(){
var pr = $('#imgwrape').attr('imgnumber');
if (pr=="4")
{
var nr = 1
}
else
{
var nr = pr + 2
};
$('#imgwrape').html('<img id="imgbigsize" src="img/main/' + nr + 'big.jpg">');
$('#imgwrape').attr('imgnumber', nr);
$('#imgboxname').html('Иллюстрация ' + nr + ' из 4');
});
Объясните, ПОЖАЛУЙСТА, в чем дело! |
а как именно он не работает?
проверьте консоль на ошибки, проверьте существование каждого используемого элемента, выводите в консоль промежуточные значения переменных... |
SER,
Без HTML переключаемого контента вопросы об ошибках - нонсенс |
SER,
Проблема в этой строке: var nr = pr + 2 pr - у вас строка и операция сложения для строк есть, поэтому второй аргумент преобразуется тоже в строку. В первом же случае операция минус не существует для строк, только для чисел, поэтому складываются два числа.
var res1 = "222" + 111; // выдаст "222111"
var res2 = "222" - 111; // выдаст 111
alert('res1 = ' + res1 + '\n res2 = ' + res2);
1-й вариант:преобразовывать значение в число
var pr = parseInt($('#imgwrape').attr('imgnumber'));
2-й вариант (более правильный):использовать data аттрибут и преобразование делать не прийдется
var pr = $('#imgwrape').data('imgnumber');
...
$('#imgwrape').data('imgnumber', nr);
|
Большо спасибо!
|
| Часовой пояс GMT +3, время: 08:50. |