Помощь новичкам в изучении JS

люди, я вообще нихера не шарю в JS.
подскажите где начать рыть.
нужно выдернуть кусок кода и прикрутить к моему скрипту. а именно: увеличение изображения(без появлений полос прокрутки) и возможность его перемещения рукой.
реализовано вот здесь Для просмотра ссылки Войди или Зарегистрируйся пробел-увеличение-возможность перемещения-пробел возврат к обычному размеру
сам JS тут Для просмотра ссылки Войди или Зарегистрируйся
 
Делаю код, считающий скидку в зависимости от количества товара. В три текстовых поля (t1gray, t1black, t1green) пользователь вводит количество соответствующих видов товара, а скидка берется от общего количества. Получилось так:
Код:
skidka1=(function (){
var s = document.getElementById("t1gray").value;
var b = document.getElementById("t1black").value;
var g = document.getElementById("t1green").value;
y = s + b + g;
var k1 = 1;
var k2 = 0.96998332;
var k3 = 0.95254939;
var sale1;
if(y<=4)
  document.getElementById("sale1").value=k1;
else if(y<=10)
  document.getElementById("sale1").value=k2;
else
  document.getElementById("sale1").value=k3;
});
Но у меня не работает сложение переменных. Например вместо 2+4+1=7 переменной у присваивается значение 241. Что я неправильно сделал?
 
вы не привели значения к int, используйте parseInt()
 
Почему тогда при замене формулы y = s + b + g; на y = 10 - s - b - g вычитание работает как надо, а вот сложение на хочет работать?
 
оператор "+" делает конкатенацию, если хотя бы один операнд - строка
 
Почему тогда при замене формулы y = s + b + g; на y = 10 - s - b - g вычитание работает как надо, а вот сложение на хочет работать?
Для решений этой проблемы, попробуй так y = (s + ( b + g ) );
С этой проблемой новички постоянно сталкиваются.

Как сказал ne4to, проблема в y = s + b + g та что, идёт не математическое решение, а конкатенация (операция склеивания объектов линейной структуры).
К примеру:
var s=1, b=3, g=5;
var y = s + b + g;
результат значение y является 135;

Код:
skidka1=(function (){
var s = document.getElementById("t1gray").value;
var b = document.getElementById("t1black").value;
var g = document.getElementById("t1green").value;
[B]var y = ( s + ( b + g ) );[/B]
var k1 = 1;
var k2 = 0.96998332;
var k3 = 0.95254939;
[S]var sale1;[/S]
if(y<=4)
  document.getElementById("sale1").value=k1;
else if(y<=10)
  document.getElementById("sale1").value=k2;
else
  document.getElementById("sale1").value=k3;
});
Я не понял зачем в коде нужно var sale1, поэтому убрал.
 
Попробовал поставить скобки, как Вы посоветовали, но все-равно не складываются переменные((( Пока сделал расчет скидки через вычитание: немного некрасиво, зато работает...
 
Помогите пожалуйста, не могу понять как сделать задержку исполнения скрипта?
Нужно что бы анимация происходила спустя 2 секунды.

Вот код:

Код:
$(document).ready(function() {
 
$curtainopen = false;
 
$(".rope").ready(function(){
$(this).blur();
if ($curtainopen == false){
$(this).stop().animate({top: '0px' }, {queue:false, duration:650, easing:'easeOutBounce'});
$(".leftcurtain").stop().animate({width:'260px'}, 2000 );
$(".rightcurtain").stop().animate({width:'260px'},2000 );
$curtainopen = true;
}else{
$(this).stop().animate({top: '-40px' }, {queue:false, duration:650, easing:'easeOutBounce'});
$(".leftcurtain").stop().animate({width:'50%'}, 2000 );
$(".rightcurtain").stop().animate({width:'51%'}, 2000 );
$curtainopen = false;
}
return false;
});
 
 
});
 
Код:
$(document).ready(function() {
 
function run()
{
$curtainopen = false;
 
$(".rope").ready(function(){
$(this).blur();
if ($curtainopen == false){
$(this).stop().animate({top: '0px' }, {queue:false, duration:650, easing:'easeOutBounce'});
$(".leftcurtain").stop().animate({width:'260px'}, 2000 );
$(".rightcurtain").stop().animate({width:'260px'},2000 );
$curtainopen = true;
}else{
$(this).stop().animate({top: '-40px' }, {queue:false, duration:650, easing:'easeOutBounce'});
$(".leftcurtain").stop().animate({width:'50%'}, 2000 );
$(".rightcurtain").stop().animate({width:'51%'}, 2000 );
$curtainopen = false;
}
return false;
}
 
setTimeout(run, 2000);
 
});
 
Попробовал поставить скобки, как Вы посоветовали, но все-равно не складываются переменные((( Пока сделал расчет скидки через вычитание: немного некрасиво, зато работает...

достаточно в начале сделать умножение на 1 ))

например
Код:
y = 1*s + b + g
 
Назад
Сверху