Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проблема с переменной (https://javascript.ru/forum/dom-window/17433-problema-s-peremennojj.html)

Luke 19.05.2011 10:35

Проблема с переменной
 
Такая штука: когда задаю в функцию $(this).css('width', s); любую переменную, которая не принимает число в этой же функции(а у меня она принимает значения параметра), она не работает, но когда в внутри напишу s = 300, например, тогда все ок.
КОД работает:
$.fn.zoomIn = function(position){
if(borderMax > position){
position = position + step;
}else{
return;
}
s = 260; //!!!!!!!!!!!!!!!!!!
$(this).css('width', s);
setTimeout('$(this).zoomIn('+position+')',1);
}

КОД не работает:
$.fn.zoomIn = function(position){
if(borderMax > position){
position = position + step;
}else{
return;
}
s = position; //!!!!!!!!!!!!!!!
$(this).css('width', s);
setTimeout('$(this).zoomIn('+position+')',1);
}

Я может что-то не знаю ли туплю, не судите строго...

Kolyaj 19.05.2011 12:33

position посмотрите чему равен.

Luke 19.05.2011 12:36

Смотрел, 300, проверял на число, isNaN -> false

kostr 19.05.2011 14:33

Тут дело в том, что $(this) в
setTimeout('$(this).zoomIn('+position+')',1);

это уже не та $(this), что в
$(this).css('width', s);

присвойте ее какой-нибудь переменной перед setTimeout, только глобальной:
$qwerty = $(this);
setTimeout('$qwerty.zoomIn('+position+')',1);

Luke 20.05.2011 00:26

Большое спасибо!!!:victory: Можно маленький комментарий почему это не тот $(this), чтоб я знал в каком направлении подчитать. Заранее, спасибо!

kostr 20.05.2011 15:47

вот тут можно почитать:
http://javascript.ru/setTimeout

"Контекст выполнения, this" там написано


Часовой пояс GMT +3, время: 16:17.