Показать сообщение отдельно
  #8 (permalink)  
Старый 01.08.2012, 01:26
Аватар для shkoder
Аспирант
Отправить личное сообщение для shkoder Посмотреть профиль Найти все сообщения от shkoder
 
Регистрация: 06.07.2012
Сообщений: 31

FoxTrix, расскажите - как оно должно работать
var time = 1000;
(function(time){
    console.log(time);
})();

практически такой же эффект, что и
var time = 1000;
(function(){
    var time;
    console.log(time);
})();

>>> indefinded
зачем вы в объекте вызова функции (function(){})(); объявляете time. По сути интерпритатор в цепочке объектов вызова найдет time равный undefined
либо передавайте его так
(function(time){
// ...
})(time);

т.е. когда предполагается, что значение time в дальнейшем будет меняться, но именно тут вам нужно именно первоначальное значение, например:
var time = 1000;
(function(time){
    setTimeout(function(){
        console.log(time);
    },1000);
})(time);
time = 100500;

>>> 1000
и если наоборот
var time = 1000;
(function(){
    setTimeout(function(){
        console.log(time);
    },1000);
})();
time = 100500;

>>> 100500
т.е. смотря что нужно.

setTimeout(function(time) {var intervalID = window.setInterval(correct, time);},700);

что вы делаете?
во первых: function(time) {... опять объявляете time и опять он undefined. Сам же setTimeout не передает вам в ваш колбэк никаких параметров т.е. в вашем случае time , зачем так писать

var intervalID = window.setInterval(correct, time);

вы не меняете значение переменной вы меняете ссылку на объект, но сам объект остается.
пример:
var a = setInterval(function(){ console.log(1); },1000);
a = setInterval(function(){ console.log(2); },1000);

>>>1
>>>2
>>>1
>>>2
...
иными словами в вашем случае при каждом resize у вас новый window.setInterval(correct, time); , при наличии предыдущих

А вообще не очень понятно, что ваш код должен делать, лучше расскажите
Ответить с цитированием