2013-03-10 5 views
0

Это ошибка, из консоли светлячок JS:Weird связанные светлячок вопрос SetTimeout

[07: 30: 41,692] NS_ERROR_XPC_BAD_CONVERT_JS: Не удалось преобразовать аргумент JavaScript аргумент 0 [nsIDOMWindow.getComputedStyle] @http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js:5

Проблема возникает только в Firefox, когда должен был произойти наборTimeout. Вы можете увидеть живой пример проблемы в http://codemagic.gr. Вот как воспроизвести проблему: откройте кодMagic, нажмите значок «Настройки», выберите другую цветовую схему. В браузерах webkit функция обратного вызова setTimeout будет выполняться в 500 мс, что изменит цвет фона # left на тот же цвет, что и .ace_gutter (так что вся левая сторона «подходит»). В Firefox, хотя, поскольку setTimeout не выполняется, левая сторона теперь выглядит «сломанной».

Это ссылка на линии, которые должны были выполнить: https://github.com/varemenos/codemagic/blob/master/assets/js/main.js#L149-L176

+3

Вы можете оставить [Short, самодостаточной Correct (компилируется), пример] (HTTP: // sscce .org /)? – ruakh

+2

Эта строка, вероятно, является виновником: '$ (« # console-editor »). Css (« color », $ (this) .css (« color »));' ... 'this' относится к' window' , К чему вы хотите это относиться? –

+0

@FelixKling, вы правы! Я использовал это внутри функции '.each', поэтому он нацеливался на' .ace_gutter'. Пожалуйста, добавьте это как ответ, чтобы я мог принять его. –

ответ

0

я использовал, чтобы иметь $("#console-editor").css("color", $(this).css("color")); внутри функции .each из нескольких строк выше, поэтому this часть целился .ace_gutter.

При использовании this ключевого слова внутри SetTimeout, вы на самом деле со ссылкой на window и не контейнера в setTimeout Кодекса