zaajcu
25.09.2014, 12:37:07
Cześć.
Mam mały problem z chromem, a mianowicie nie działa mi jak trzeba funkcja show() z jquery. Jak daje F5 do się element nie pokazuje, po wciśnięciu Ctrl+F5 w większości przypadków działa jak trzeba.
W Dom jest tylko jeden element:
<div id="test" class="full-size"></div>
css:
.full-size{
height: 1080px!important;
min-height: 1080px;
max-height: 1080px;
width: 1920px!important;
min-width: 1920px;
max-width: 1920px;
overflow: hidden;
}
#test{
position: absolute !important;
top:0;
left:0;
display: none;
}
jQuery:
$(document).ready(function(){
$('#test').show();
})
Używam bibliotek jquery:
http://code.jquery.com/jquery-1.11.1.min.jshttp://code.jquery.com/ui/1.11.1/jquery-ui.min.jsCo jest jeszcze lepsze. Jak dam w jQuery zrobie tek:
$('#test').hide().show();
To wszystko działa:/
Co z tym jest nie tak?
Dowód że działa:
http://jsfiddle.net/6r7kvbqt/Z jQuery 2.1.0
zaajcu
25.09.2014, 12:56:16
To to ja wiem, że ten kod powinien działać i na firefox, ie nie ma z nim żadnego problemu :/ zastanawia mnie dla czego nie chce chodzić jak trzeba na chrome.
Mam lokalnie postawiony server Wamp. Używałem tej funkcji wielokrotnie i nigdy nie miałem żadnych problemów z nią. Z kodu który mam wykasowałem wszystko zostało to co wam wysłałem, ale niestety dalej to nie pomogło :/ Przy używaniu samego F5 co któryś raz zaskoczy :/
viking
25.09.2014, 12:59:03
W jaki sposób wczytujesz biblioteki (może asynchronicznie) i gdzie są w kodzie umieszczone?
No tez opcja że swój skrypt wczytujesz przed jQuery. Bo ja zauważyłem często tendencje że swoje skrypty ludzie dają do heada a takie kombajny jak jQuery pod koniec body. Albo tu, albo tu.
zaajcu
25.09.2014, 13:05:18
Dodam że przekopiowałem kod do
http://jsfiddle.net/ i tam działa ok.
HTML wygląda dokładnie tak:
<!DOCTYPE html>
<meta name="description" content=""> <meta name="keywords" content=""> <script type="text/javascript" src="lib/jquery-1.11.1.min.js"></script> <script type="text/javascript" src="lib/jquery-ui.min.js"></script>
<link type="text/css" href="style.css" rel="stylesheet" /> <div id="page" class="full-size"> <div id="test" class="full-size">
Kolejna ciekawostka, po wpisaniu adresu url - działa ok, po F5 nie :/
viking
25.09.2014, 13:09:08
Na początek zamknij head i zobacz walidatorem czy innych błędów nie ma.
<!DOCTYPE html>
<meta name="description" content=""> <meta name="keywords" content=""> <link type="text/css" href="style.css" rel="stylesheet" /> <script type="text/javascript" src="lib/jquery-1.11.1.min.js"></script> <script type="text/javascript" src="lib/jquery-ui.min.js"></script>
.full-size{
height: 1080px!important;
min-height: 1080px;
max-height: 1080px;
width: 1920px!important;
min-width: 1920px;
max-width: 1920px;
overflow: hidden;
}
#test{
position: absolute !important;
top:0;
left:0;
display: none;
background:red;
width:100%;
height:100%;
}
Edit: sam nie zauwazylem braku /head , ale tak juz dziala.
zaajcu
25.09.2014, 13:16:59
Heda zamknąłem validacja ok i dalej to samo F5 nie działa, bezpośrednio z url jest ok :/
Po wywaleniu full-size i zmianie w css dalej nie działa :/
Skopiuj sobie to co Ci dałem bo testowałem to w notatniku a nie na jsfiddle i powiedz czy dalej masz tak samo, u mnie tez nie działało póki nie poprawiłem i teraz hula normalnie. A nie że zamkniesz head'a, wywalisz full-size i zrobisz f5. Zmian jest też kilka w css'ie nie wiem czy zauważyłeś.
zaajcu
25.09.2014, 13:35:38
No faktycznie działa spróbuje to zaadoptować u siebie i zobaczymy co to da
Z tego co zauważyłem dodałeś w css
width: 100%
height: 100%
i do tego div#test wrzuciłeś do div.full-size.
Jeżeli tyle zmian to dalej nie dział :/ k....
A zmieniłeś sobie background żeby widzieć tego diva czy jest czy nie?
Bo ogólnie jak sprawdzam $('.#test') to mi console.log zwraca że ten div tam jest i ma display:block.
zaajcu
25.09.2014, 13:44:12
Tak dodałem bg.
Ale problem rozwiązany i w sumie też tak masz zrobione czego nie zauważyłem :/
problem tkwił w head. Najpierw ładowałem js a potem css, zmieniłem że css ładuję się najpierw i po problemie

I wszystko śmiga.
Teraz pytanie dlaczego tak jest? Z tego co kojarzę to kolejność wczytywania nie ma znaczenia :/
Jak to nie? JavaScript to język skryptowy .... co prawda dziwi mnie fakt że $(document).ready() tego nie złapał i spekulując mógł bym pomyśleć że próbował zrobić show() na nie zdefiniowanej w szablonie klasie ale to się dupy i kupy nie trzyma... w końcu ready()... No nie wiem, widocznie tak jest i trzeba pamiętać na przyszłość że ceesesy dawać przed javascriptami.
zaajcu
25.09.2014, 14:02:16
Dziwaczne :/ nigdy nie miałem z tym problemów aż do dziś :/ A już trochę rzeczy porobiłem. Ale to jest chyba bug w chromie bo nawet IE z tym nie miało problemu

W js wiem, że kolejność ładowania plików jest ważna.
Kolejne rozwiązanie problemu to asynchroniczne ładowanie js, to też pomogło
To klikaj kto pomógł, będziemy mieli porównanie, heee
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.