Ошибки jQuery и текстовых файлов в Firefox - PullRequest
1 голос
/ 04 августа 2011

Я прошу прощения за возможно запутанный заголовок, но я не совсем знал, как пометить эту ветку. Во всяком случае, я работаю над веб-приложением, которое прекрасно работает в IE, но по какой-то причине кажется, что оно не работает в Firefox. Я знаю, что сначала это происходит со многими приложениями, но ошибки, которые выдает мне консоль разработки Firefox, на самом деле не имеют особого смысла. Вот ошибки, с которыми это приходит:

$("#workNews").text(lines[i++]).hide is not a function
syntax error
data.split is not a function

Первая ошибка утверждает, что следующая строка кода не работает, потому что считает, что jQuery.hide () не является функцией.

$("#workNews").text(lines[i++]).hide().fadeIn(500).delay(4000).fadeOut(500);

Теперь эта строка кода работала как в IE, так и в Firefox, но внезапно сломалась. То же самое с третьей ошибкой, в которой он считает, что метод split (), который разбивает строку разделителем, не является функцией. Опять же, эта линия работала раньше, а теперь вдруг нет. «Синтаксическая ошибка» - это то, что действительно странно ... Я открываю и читаю строки из текстового файла с помощью метода «$ .get ()», который прекрасно работал и до сих пор работает в IE. Однако консоль разработчика Firefox сообщает мне о синтаксической ошибке и продолжает указывать на строку текста в файле.

Я не уверен, есть ли какая-то простая вещь, которую мне нужно исправить в другом месте моего кода, которая не видна из-за этих ошибок, но при столкновении с такими проблемами я задавался вопросом, была ли какая-либо "обычная причина" для этого бывает. Если вам нужно увидеть больше моего кода, просто спросите. Спасибо.

РЕДАКТИРОВАТЬ # 1: Просто чтобы быть в безопасности, вот целая функция, в которой предположительно происходят все три "ошибки". Опять же, до недавнего времени эта функция прекрасно работала как в IE, так и в Firefox.

function GetWorkNews() {
    var lines = new Array(); var i = 0;
    $.get(textFile, function(data) {
        lines = data.split("\n");
    });

    $("#workNews").text(lines[i++]).hide().fadeIn(500).delay(4000).fadeOut(500);
    setInterval(function() {
        $("#workNews").text(lines[i++]).hide().fadeIn(500).delay(4000).fadeOut(500);

        if(i == lines.length) {
            i = 0;
        }
    }, 5000);
}

РЕДАКТИРОВАТЬ # 2: Когда я возился, я закомментировал первую строку jQuery, в которой я вызываю функцию hide (): .. $ (# workNews ") текст (строки [я ++]) скрывать () FadeIn (500) .delay (4000) .fadeOut (500). Кажется, теперь все работает, хотя FF Dev Console все еще говорит мне, что в моем текстовом файле есть синтаксическая ошибка. Полагаю, мне не «нужна» эта строка, которую я закомментировал, поскольку она просто заполняет мой баннер текстом, чтобы не пришлось ждать пять секунд, пока не появится первый заголовок, но я все равно хотел бы его , Есть идеи, почему эта строка оборвалась, но не совпадает с той же строкой внутри функции setInterval ()?

Ответы [ 2 ]

0 голосов
/ 04 августа 2011

Как итог, я нашел два возможных решения этой проблемы.Первым и менее желательным было просто удалить строку кода.Во-вторых, нужно было разбить вызовы функций проблемной строки таким образом:

$("#workNews").text(lines[i++]).hide().fadeIn(500).delay(4000).fadeOut(500);

становится таким:

$("#workNews").text(lines[i++]);
$("#workNews").hide();
$("#workNews").fadeIn(500);
$("#workNews").delay(4000);
$("#workNews").fadeOut(500);

Очевидно, что FF не нравится объединять эти вызовы функций вместе, какIE видимо разрешает.Тем не менее, консоль разработчика FF по-прежнему жалуется на какую-то синтаксическую ошибку в текстовом файле, из которого выполняется чтение, но, похоже, она не вызывает каких-либо серьезных ошибок.

0 голосов
/ 04 августа 2011

Вы пытались изменить селектор?вместо #workNews => # worknews

$ ('# worknews'). text (...).

Заглавные буквы влияют: o.Я думаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...