Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript]jQUERY nie działa kod z tutoriala.
Forum PHP.pl > Forum > Przedszkole
kosmos
Witam,
próbuję zrozumieć jQUERY aby móc zastosować go później w projekcie strony. Znalazłem taki oto kawałek kodu z pewnego kursu, który wklejam poniżej. Po kliknięciu w link więcej, na ekranie powinna wyświetlić się pozostałą treść newsa. Nie mam pojęcia dlaczego to nie działa. Może coś jest nie tak skonfigurowane w systemie? Proszę o pomoc.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl-PL">
  3. <title>Strona z newsem</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
  5. <!-- dodanie jQuery do dokumentu -->
  6.  
  7. <script type="text/javascript" src="jQuery.js"></script>
  8.  
  9. <!-- Nasz kod java script: -->
  10.  
  11. <script type="text/javascript">
  12.  
  13. $(document).ready(
  14. function()
  15. {
  16. $("#link").click(
  17. function()
  18. {
  19. $("#more").toggle();
  20. }).toggle(function() { $(this).text('schowaj'); }, function() { $(this).text("więcej"); });
  21. });
  22.  
  23. </head>
  24. <div>
  25. <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque metus eros, rutrum at, hendrerit nec, posuere ac.<a href="#" id="link">więcej</a></p>
  26.  
  27. <p id="more" style="display: none;">Vivamus pretium fringilla metus. Praesent a enim eu metus scelerisque tincidunt. In auctor lorem et leo.</p>
  28. </div>
  29. </body>
  30. </html>
castagir
musisz zmienic styl css #more na widoczny. Masz coś takiego

  1. <p id="more" style="display: none;">

none oznacza, że jest niewidoczne, więc do póki nie zmienisz tego stylu na widoczny, nie pojawi się na stronie

dopisz cos takiego:
  1. $("#link").click(
  2. function()
  3. {
  4. $('#more').css('display', 'block');
  5. $("#more").toggle();
  6. }).toggle(function() { $(this).text('schowaj'); }, function() { $(this).text("więcej"); });
  7. });
kosmos
Display jest block bo z tego co się orientuję po załadowaniu musi być ten tekst niewidoczny. Dopiero po kliknięciu w link "więcej" ma się pojawić.

Zmieniłem tak i nadal nie działa:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl-PL">
  3. <title>Strona z newsem</title>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
  5. <!-- dodanie jQuery do dokumentu -->
  6.  
  7. <script type="text/javascript" src="jQuery.js"></script>
  8.  
  9. <!-- Nasz kod java script: -->
  10.  
  11. <script type="text/javascript">
  12.  
  13. $(document).ready(
  14. function()
  15. {
  16. $("#link").click(
  17. function()
  18. {
  19. $('#more').css('display', 'block');
  20. $("#more").toggle();
  21. }).toggle(function() { $(this).text('schowaj'); }, function() { $(this).text("więcej"); });
  22. });
  23.  
  24. </head>
  25. <div>
  26. <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Pellentesque metus eros, rutrum at, hendrerit nec, posuere ac.<a href="#" id="link">więcej</a></p>
  27.  
  28. <p id="more" style="display: block">Vivamus pretium fringilla metus. Praesent a enim eu metus scelerisque tincidunt. In auctor lorem et leo.</p>
  29. </div>
  30. </body>
  31. </html>
tzm
http://jsfiddle.net/Lmdk6sts/
kosmos
Cytat(tzm @ 17.03.2015, 20:05:08 ) *

Twój przykład działa - dziękuję, ale mógłbym Cię prosić o kilka zdań wyjaśnienia sposobu działania?
  1. $(document).ready(function(){
  2. $('button').on('click',function(){
  3. $('.article').toggleClass('opened');
  4. });
  5. });


rozumiem że po kliknięciu na button wywołany jest kawałek
  1. $('.article').toggleClass('opened');

z funkcją toogle która sama rozpoznaje czy element jest ukryty czy schowany tak?

Pytanie co jest nie tak z poprzednim kodem ?

trueblue
Dla jQuery poniżej 1.9:
  1. $(document).ready(function(){
  2. $("#link").click(function(){
  3. $('#more').css('display', 'block');
  4. $("#more").toggle();
  5. }).toggle(function() { $(this).text('schowaj'); }, function() { $(this).text("więcej"); });
  6. });


Dla jQuery powyżej 1.9
  1. $(document).ready(
  2. function () {
  3. $("#link").click(function () {
  4. $("#more").toggle();
  5. if($(this).text()=='schowaj')
  6. $(this).text('więcej');
  7. else
  8. $(this).text('schowaj');
  9. });
  10. $("#more").toggle();
  11. });
tzm
toggleClass tylko zmienia klasę na wskazanym elemencie. to taki addClass, removeClass z flagą wbudowaną. reszta jest w cssie.
kosmos
No to tak:
To co napisał trueblue niestety nie działa.

a to co napisał tzm wyświetla przycisk ale kliknięcie na niego nie powoduje żadnej akcji. Kurcze .... czyżby było coś nie tak z moim serwerem lokalnym?

  1. html:
  2. <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
  3. <meta http-equiv="Reply-to" content="test@gmail.pl" />
  4. <meta name="Author" content="" />
  5. <meta name="Description" content="Tu wpisz opis zawartości strony" />
  6. <meta name="Keywords" content="Tu wpisz wyrazy kluczowe rozdzielone przecinkami" />
  7. <title><?php echo 'Welcome!';?></title>
  8. <link href="<?php echo $view['assets']->getUrl('css/style4.css') ?>" rel="stylesheet" type="text/css" />
  9.  
  10. <!-- dodanie jQuery do dokumentu -->
  11. <script type="text/javascript" src="jQuery.js"></script>
  12. <!-- Nasz kod java script: -->
  13.  
  14. <script type="text/javascript">
  15. $(document).ready(function(){
  16. $('button').on('click',function(){
  17. $('.article').toggleClass('opened');
  18. });
  19. });
  20. </head>
  21. <div class="article">
  22. <h1>Nazwa artykułu</h1>
  23. <div class="content">
  24. "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"
  25. </div>
  26. <button>pokaż mniej/więcej</button>
  27. </div>
  28. </body>
  29. </html>


css
  1. .article .content{
  2. display: none;
  3. }
  4. .article.opened .content{
  5. display: block;
  6. }


ale opornie mi to idzie ....
tzm
No to bankowo coś pochrzaniłeś w dowiązaniach, poza tym nie dałem pełnego przykładu tylko pokazałem jak chować i ukrywać.
Niech pomyślę... otwórz źródło strony i zobacz link do cssów i jquery, czy na pewno linkują w dobre miejsce, poza tym jaką masz wersję jq? stawiam na ten assets że nie działa jak powinien.
trueblue
W pierwszym błąd: http://jsfiddle.net/wb95aw3v/
Drugi: http://jsfiddle.net/wb95aw3v/1/
tzm
jakieś to brzydkie trueblue co pokazujesz, ić
kosmos
tzm
css jest dobrze podpięty. zmieniłem background na inny kolor i działa. jq 1.3.2


trueblue

też nie działa.

Chłopaki może mam coś nie tak z pobieraniem biblioteki?

to jest poprawny zapis?
  1. <script type="text/javascript" src="jQuery.js"></script>
tzm
  1. <script src="external/jquery/jquery-2.1.3.min.js"></script>


sciagnij se nowa wersje po prostu

edit: aż dziwne że gość z takim stażem na forum nie wie jak plik dołączyć biggrin.gif co Ty robiłeś tyle lat?

mówię, otwórz źródło strony i kliknij każdy link. jak 404 wywali to wiesz co jest grane, jak nie to szukamy dalej
trueblue
Poprawnie jeśli jQuery.js masz na tej samej ścieżce co skrypt, w którym go dołączasz.
Chrome->F12->Console.
kosmos
Cytat(tzm @ 17.03.2015, 20:45:40 ) *
  1. <script src="external/jquery/jquery-2.1.3.min.js"></script>


sciagnij se nowa wersje po prostu

edit: aż dziwne że gość z takim stażem na forum nie wie jak plik dołączyć biggrin.gif co Ty robiłeś tyle lat?

mówię, otwórz źródło strony i kliknij każdy link. jak 404 wywali to wiesz co jest grane, jak nie to szukamy dalej



<link href="/symfony/web/css/style4.css" rel="stylesheet" type="text/css" /> działa i otwiera plik css

<script src="external/jquery/jquery-2.1.3.min.js"></script> <-- działa i otwiera plik biblioteki


Obecny kod:

  1. <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
  2. <meta http-equiv="Reply-to" content="test@gmail.pl" />
  3. <meta name="Author" content="" />
  4. <meta name="Description" content="Tu wpisz opis zawartości strony" />
  5. <meta name="Keywords" content="Tu wpisz wyrazy kluczowe rozdzielone przecinkami" />
  6. <title><?php echo 'Welcome!';?></title>
  7. <link href="<?php echo $view['assets']->getUrl('css/style4.css') ?>" rel="stylesheet" type="text/css" />
  8.  
  9. <!-- dodanie jQuery do dokumentu -->
  10. <script src="external/jquery/jquery-2.1.3.min.js"></script>
  11. <!-- Nasz kod java script: -->
  12.  
  13. <script type="text/javascript">
  14. $(document).ready(function(){
  15. $('button').on('click',function(){
  16. $('.article').toggleClass('opened');
  17. });
  18. });
  19. </head>
  20. <div class="article">
  21. <h1>Nazwa artykułu</h1>
  22. <div class="content">
  23. "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"
  24. </div>
  25. <button>pokaż mniej/więcej</button>
  26. </div>
  27. </html>
  28.  
  29. a co do stażu to na to nie patrz :) i ogólnie to dłuuuga historia ...


tzm
  1. <meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
  2. <meta http-equiv="Reply-to" content="test@gmail.pl" />
  3. <meta name="Author" content="" />
  4. <meta name="Description" content="Tu wpisz opis zawartości strony" />
  5. <meta name="Keywords" content="Tu wpisz wyrazy kluczowe rozdzielone przecinkami" />
  6.  
  7. <!-- dodanie jQuery do dokumentu -->
  8. <script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
  9. <!-- Nasz kod java script: -->
  10.  
  11. <script type="text/javascript">
  12. $(document).ready(function(){
  13. $('button').on('click',function(){
  14. $('.article').toggleClass('opened');
  15. });
  16. });
  17. </script>
  18. .article .content{
  19. display: none;
  20. }
  21. .article.opened .content{
  22. display: block;
  23. }
  24. </style>
  25. </head>
  26. <div class="article">
  27. <h1>Nazwa artykułu</h1>
  28. <div class="content">
  29. "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"
  30. </div>
  31. <button>pokaż mniej/więcej</button>
  32. </div>
  33. </html>


zobacz tak... no u mnie działa na lokalu, bez lokala...


edit: polecam w Twoim przypadku: http://www.codecademy.com/en/tracks/web
kosmos
Ten przykład działa.
Ok już wiem co było nie tak od samego początku. Teraz zmieniłeś odnośnik do biblioteki z
<script src="external/jquery/jquery-2.1.3.min.js"></script>
na
<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>

Skrypt z tutoriala też już działa, a tam z kolei podawali takie źródło:
script type="text/javascript" src="jQuery.js"></script>
CSS był cały czas poprawny.

Dzięki wielkie za pomoc smile.gif
com
podawali bo mieli, a Ty spinasz go z symfony(jak przypuszczam) i problemem były ścieżki i jakaś archaiczna wersja JQuery smile.gif a odpowiedź druga była totalną bzdurą bo $("#more").toggle() odpowiada za naprzemienną zmianę z display none na block smile.gif
kosmos
Dokładnie z Symfony smile.gif
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.