Подтвердить что ты не робот

Не удалось выполнить 'getComputedStyle' в 'Window': параметр 1 не относится к типу 'Element' error

У меня проблема с некоторым унаследованным кодом - это приложение на стене, похожее на FB, где зарегистрированные пользователи могут публиковать темы. Большая часть кода - JS и jQuery, и я мало знаю об этом.

При публикации темы тема добавляется в базу данных, но на экране не отображается тема, пока она не будет обновлена, но она должна отображаться сразу - когда я смотрю в Инструментах разработчика, я получаю сообщение об ошибке:

Uncaught TypeError: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'.

Когда я разворачиваю ошибку, я получаю:

curCSS  @   jquery-1.8.3.js:6825
jQuery.extend.css   @   jquery-1.8.3.js:6782
isHidden    @   jquery-1.8.3.js:6587
defaultPrefilter    @   jquery-1.8.3.js:8797
Animation   @   jquery-1.8.3.js:8697
doAnimation @   jquery-1.8.3.js:9034
jQuery.extend.dequeue   @   jquery-1.8.3.js:1895
(anonymous function)    @   jquery-1.8.3.js:1938
jQuery.extend.each  @   jquery-1.8.3.js:611
jQuery.fn.jQuery.each   @   jquery-1.8.3.js:241
jQuery.fn.extend.queue  @   jquery-1.8.3.js:1931
jQuery.fn.extend.animate    @   jquery-1.8.3.js:9044
jQuery.fn.(anonymous function)  @   jquery-1.8.3.js:9129
(anonymous function)    @   script.js:52
fire    @   jquery-1.8.3.js:974
self.fireWith   @   jquery-1.8.3.js:1084
done    @   jquery-1.8.3.js:7803
callback    @   jquery-1.8.3.js:8518

Строка 52 в script.js:

$('#loadpage').prepend($(response).fadeIn('slow'));

Я надеюсь, что это не что-то зафиксированное в jQuery 1.9.x и выше, поскольку обновление на данный момент слишком много вещей, чтобы сделать его жизнеспособным, но я понятия не имею, с чего начать поиск и устранение этого

Я нашел три вопроса с одной и той же ошибкой, но не смог получить какие-либо идеи из ответов, вероятно, из-за милаха знаний JS.

Сделали некоторый прогресс - я обновился до jQuery 1.9.1, и на этот раз это произошло, но ошибка изменилась. На этот раз ошибка стала:

Uncaught TypeError: Cannot set property 'cur' of undefined

указывая на ту же строку в script.js

Найден быстрый поиск Неиспользуемый TypeError с fadeIn в jQuery 1.9, который рекомендовал изменить строку:

$('#loadpage').prepend($(response).fadeIn('slow'));

в

$('#loadpage').prepend($(response).show());

Когда я делаю это, ошибок больше нет, но он все еще не работает корректно - при публикации новой публикации в список добавляется новая запись, но это дубликат предыдущего сообщения. Так, например,

Post 1
Post 2
Post 3

Если я опубликую новое сообщение, которое называется Post 4, оно будет отображаться как:

Post 1
Post 1
Post 2
Post 3

Когда я обновляю его, он корректно отображается как сообщение 4 и т.д., поэтому он чувствует себя как прогресс, но все еще не совсем там.

Ответ определяется в:

    $('#post').click(function(){
        var a = $("#wm").val();
        if(a != "")
        {
            var keepID = $('#keepID').val();
            var posted_on = $('#posted_on').val();

            $.post("wall.php?value="+a+'&x='+keepID+'&p='+posted_on, {
            }, function(response){
                //console.log(response);        

                //$('#load').prepend($(response).fadeIn('slow'));
                $('#load').prepend($(response).show());
                $("#wm").val("");
            });
        }


    });

Этот script ужасен!

4b9b3361

Ответ 1

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

$('#post').click(function(){
    var a = $("#wm").val();
    if(a != "")
    {
        var keepID = $('#keepID').val();
        var posted_on = $('#posted_on').val();

        $.post("wall.php?value="+a+'&x='+keepID+'&p='+posted_on, {
        }, function(response){
            $(response).prependTo($('#load')).fadeIn('slow');
            $("#wm").val("");
        });
    }
});

Если это не сработает, должна быть ошибка в PHP скрипт или в параметрах GET, которые вы передаете