ФорумПрограммированиеJavaScript → То работает, то не работает

То работает, то не работает

  • Hight

    Сообщения: 1489 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2011 г. 15:11

    Есть цикл:

    for(var i = 0; i < this.emoticonsPanel[id].length; i++){
    setTimeout('jQuery(textEditor.emoticonsPanel['+id+']['+i+']).fadeIn(100)', i*100);
    }


    Какого хуя оно, то нормально отрабатывает показывая смайлики по очереди, то, сука, выдаёт такую хуйню:
    textEditor.emoticonsPanel[9884639297141636] is undefined

    Моя нипанимать. Да и как оно такое может быть если перед этим я делаю: this.emoticonsPanel[id] = []; и добавляю туда элементы, а потом ещё и проверяю: this.emoticonsPanel[id].length

    В IE ругается так:
    SCRIPT5007: Не удалось получить значение свойства "1": значением объекта является NULL или он не определен

    Это он уже по итератору не может нихуя значение получить.

    Продебажил всё от и до. Всё корректно! Не понимаю. Какая-то особенность ебучего setTimeout походу.
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2011 г. 15:29, спустя 17 минут 5 секунд

    Какая-то особенность ебучего setTimeout походу.

    Прочитай как он работает. Он основывается на манипуляциях пользователя - там фиксированного таймера нету, яваскрипт псевдоасинхронен же
  • Hight

    Сообщения: 1489 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2011 г. 15:34, спустя 5 минут 20 секунд

    Ivan, так дело в том, что во время выполнения кода который я подсовываю в setTimeout все объекты и элементы массива присутствуют. Это часть кода выполняемая во время инициализации редактора. Перед установкой setTimeout всё уже есть и далее никаких манипуляций не производится. Прикол в том, что ошибка появляется раз через раз-пять-десять. Я не могу понять закономерности появления косяка.
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2011 г. 15:42, спустя 8 минут 27 секунд

    Попробуй мышкой поводить по экрану)))
    Спустя 135 сек.
    Алсо как-то подобное было с калбеком localStorage (window event local) - ну не работал и всё! Никаких ошибок, браузер перезапускаю работает, потом через раз и потом вовсе не работает. Решил не трахаться с причинами и написать костыль на сетИнтервал. Кстати - файрбаг попробуй вырубить и всякие антивирусы и банерорезалки + от браузера многое зависит, на всяких опера бета и найтли не стоит отлаживать ничего вообще
    Спустя 84 сек.
    id каким образом получаешь?
    Спустя 68 сек.
    Есть предположение что у тебя id разный генерится и иногда число превышает допустимые пределы…
    Спустя 96 сек.
    работай как с хешем, ид в скобках указывай
    someHash["myid"]

    а то ты путаешь жс-движок
  • Hight

    Сообщения: 1489 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2011 г. 15:51, спустя 8 минут 36 секунд

    Есть предположение что у тебя id разный генерится

    Ид генерится один раз в самом начале, а потом передаётся каждому методу отдельно параметром - он везде одинаковый.
    иногда число превышает допустимые пределы

    А какой там предел?
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2011 г. 15:53, спустя 2 минуты 25 секунд

    alert(Number.MAX_VALUE)
  • Hight

    Сообщения: 1489 Репутация: N Группа: Адекваты

    Spritz 5 декабря 2011 г. 15:54, спустя 22 секунды

    Ivan, чувак, ты прав. Косяк в id. Ручками id присвоил - не проблем. Сейчас переделаю метод генерации id

    ;)
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 5 декабря 2011 г. 19:40, спустя 3 часа 46 минут 15 секунд

    нубяра xDD
    Сапожник без сапог
  • sweet15w

    Сообщения: 139 Репутация: N Группа: Кто попало

    Spritz 6 декабря 2011 г. 1:17, спустя 5 часов 37 минут 10 секунд

    Хайт испортился

    блеа… прокис… так и знал… что в холодильник надо было его убирать ((
  • Hight

    Сообщения: 1489 Репутация: N Группа: Адекваты

    Spritz 6 декабря 2011 г. 3:08, спустя 1 час 51 минуту 1 секунду

    Я дурак, у меня и справка есть! =)
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 6 декабря 2011 г. 3:31, спустя 22 минуты 50 секунд

    Hight, справка кем выдана, Дудом? Он-то может, ему позволено и не такое.
  • Hight

    Сообщения: 1489 Репутация: N Группа: Адекваты

    Spritz 6 декабря 2011 г. 7:13, спустя 3 часа 42 минуты 9 секунд

    справка кем выдана, Дудом?

    Кем же ещё. Самым большим авторитетом!

Пожалуйста, авторизуйтесь, чтобы написать комментарий!