Mam problem z jakimś odziedziczonym kodem - jest to aplikacja ścienna przypominająca FB, w której zarejestrowani użytkownicy mogą publikować tematy. Dużo kodu to JS i jQuery i niewiele o tym wiem.Nie można wykonać 'getComputedStyle' w 'oknie': parametr 1 nie jest typu "Błąd elementu"
Kiedy zamieszczając wątek wątek zostaje dodany do bazy danych, ale na ekranie nie pojawi się temat, dopóki nie zostanie odświeżona ale powinien pokazać natychmiast - gdy patrzę w narzędziach dla programistów pojawia się błąd:
Uncaught TypeError: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'.
Kiedy poszerzyć ten błąd pojawia się:
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
Linia 52 w script.js jest:
$('#loadpage').prepend($(response).fadeIn('slow'));
Mam nadzieję, że to nie jest coś naprawione w jQuery 1.9.x i wyżej jako uaktualnienie zbyt wielu rzeczy w tej chwili, aby zrobić to opłacalne, ale nie mam pojęcia, od czego zacząć rozwiązywanie tego problemu
Znalazłem trzy pytania z ten sam błąd, ale nie był w stanie uzyskać żadnych pomysłów z odpowiedzi prawdopodobnie ze względu na mylack wiedzy JS.
Osiągnąłem pewien postęp - zaktualizowałem jquery 1.9.1 i tym razem tak się stało, ale błąd się zmienił. Tym razem stało się błąd:
Uncaught TypeError: Cannot set property 'cur' of undefined
wskazując na tej samej linii w script.js
Szybkie wyszukiwanie znalezionego Uncaught TypeError with fadeIn in jQuery 1.9 który zalecany zmieniając linię:
$('#loadpage').prepend($(response).fadeIn('slow'));
do:
$('#loadpage').prepend($(response).show());
Kiedy to zrobię, nie ma już żadnych błędów, ale nadal nie jest to działa poprawnie - po zaksięgowaniu nowego posta dodano nowy wpis, ale jest on duplikatem poprzedniego postu. Tak na przykład,
Post 1
Post 2
Post 3
Gdybym umieścić nowy wpis o nazwie Post 4 następnie wyświetla jako:
Post 1
Post 1
Post 2
Post 3
Kiedy odświeżyć to wtedy pokazuje poprawnie Post 4 etc więc czuje się jak jakieś postępy, ale nadal nie całkiem tam
Response jest zdefiniowana w:
$('#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("");
});
}
});
ten skrypt jest fricking ho Wspaniale!
numery linii byłaby bardziej przydatna, jeśli używany [unquified jQuery] (http: // kod.jquery.com/jquery-1.8.3.js). – Oriol
Doskonały punkt, posortuję to teraz - dziękuję – bhttoan
Możesz ustawić punkt przerwania tam i sprawdzić wartość 'odpowiedzi'? – ray