Estoy teniendo un problema con algunas heredadas de código es una pared en la aplicación de algo como FB donde los usuarios registrados pueden publicar temas. Una gran cantidad de código JS y jQuery y me sabe muy poco acerca de cualquiera.

Cuando la publicación de un tema el tema se añade a la base de datos, pero la pantalla no muestra el tema hasta que se actualiza pero no se deberían ver inmediatamente – cuando miro en Herramientas de Desarrollador me sale el error:

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

Al ampliar el error:

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

Línea 52 en script.js es:

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

Tengo la esperanza de que esto no es algo fijo en jQuery 1.9.x y por encima de como actualizar rompe demasiadas cosas en el momento en el que la hagan viable, pero no tengo idea de por donde comenzar a solucionar este

He encontrado tres preguntas con el mismo error, pero no era capaz de conseguir cualquier ideas a partir de las respuestas probablemente debido a mylack de JS conocimiento.

Se han logrado algunos progresos, he actualizado a jQUery 1.9.1 y esta vez sucedió lo mismo, pero el error cambiado. Esta vez el error se convirtió en:

Uncaught TypeError: Cannot set property 'cur' of undefined

apuntando a la misma línea en script.js

Una búsqueda rápida encontré Uncaught TypeError con fadeIn en jQuery 1.9 que se recomienda cambiar la línea:

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

:

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

Cuando hago esto ya no hay errores, pero todavía no acaba de funcionar correctamente – cuando el nuevo post es publicado hay una nueva entrada que se agregan a la lista, pero es un duplicado de la anterior post. Así, por ejemplo,

Post 1
Post 2
Post 3

Si puedo publicar un nuevo post que se llama Post 4, a continuación, se muestra como:

Post 1
Post 1
Post 2
Post 3

Al actualizar a continuación, se muestra correctamente como el Post 4, etc así que se siente como algunos progresos, pero todavía no hay

Respuesta se define en:

    $('#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("");
            });
        }


    });

Este script es fricking horrible!

Los números de línea sería más útil si se usa unminified jQuery.
Excelente punto, voy a ordenar que ahora – gracias
Se puede establecer un punto de interrupción no e inspeccionar el valor de response?
El problema es que la respuesta no existe. En Su versión en JQ este error parece no ser apresado. Así que el problema no está en esa línea. Voy a necesitar más contexto.
¿Qué response contiene exactamente ?

OriginalEl autor bhttoan | 2015-05-16

1 Comentario

  1. 1

    Usted probablemente tendrá que insertar el elemento antes de mostrarlo. Intente esto:

    $('#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("");
            });
        }
    });

    Si eso no funciona, debe haber un error en la script php o en el OBTENER parámetros se pasa

    OriginalEl autor Kriegslustig

Dejar respuesta

Please enter your comment!
Please enter your name here