Не работает скрипт
Есть два похожих кода, но первый работает
$(".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, время: 23:29. |