Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: "Dymek" w JavaScript
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
lukasz108min
Witam! Napisałem skrypt dymka który wyświetla dane z bazy mysql po najechaniu na link i wszystko jest niby ok ale mam tych linków wiele i są wypisywane za pomocą php ( pętla while ) i gdy najedzie się na obojętnie który dymek to zawsze wyświetla się w nim wartość z pierwszej pętli.
sazian
no wiesz chętnie bym pomógł ale na kawę i wróżenie z fusów to już chyba trochę za późno
lukasz108min
Mam skrypt wyświetlający chmurke w pliku .js i pętle while która wczytuje dane z bazy danych i daje do nich link i gdy najedziesz na ten link to powinna się wyświetlić informacja z danej bazy danych a wyświetla się zawsze z pierwszej pętli
sazian
hmmm.. chyba już to gdzieś czytałem. A tak w pierwszym poście smile.gif

jakbyś nie rozumiał ta taka subtelna sugestia żebyś pokazał kod
lukasz108min
  1. while($tablica = mysql_fetch_array($tablice)) { ?>
  2. <p>
  3. <div id="dymekuser">Testuje <?php echo $user['imie']; ?></div>
  4. <a class="tekst" onmouseover="pokaz('dymekuser',event)" onmouseout="ukryj('dymekuser')" href="profil.php?id=<?php echo $id_2; ?>"><?php echo $danep['imie'],' ',$danep['nazwisko']; ?></a>


  1. function pokaz(divname,evencik) {
  2. var chmurka = document.getElementById(divname);
  3. chmurka.style.visibility = "visible";
  4. chmurka.style.left = evencik.clientX + 5;
  5. chmurka.style.top = evencik.clientY + 5;
  6. }
  7.  
  8. function ukryj(divname) {
  9. var chmurka = document.getElementById(divname);
  10. chmurka.style.visibility = "hidden";
  11. }


  1. #dymekuser {
  2. background: #3F3D3C;
  3. height: 170px;
  4. width: 130px;
  5. color: white;
  6. z-index: 5;
  7. position : absolute;
  8. visibility: hidden;
  9. padding : 5px;
  10. }
toffiak
Atrybut "id" dla elementu powinien być unikalny, u Ciebie dla każdego przebiegu pętli jest tworzony element z tym samym id, aby skryt działał poprawnie należy zamienić id na class a następnie pobierać elementy z wybraną klasą.
Widzę że korzystasz z czystego js więc przeczytaj to.
lukasz108min
Zmieniłem diva na klase i dodałem kod js :
  1. if (document.getElementsByClassName == undefined) {
  2. document.getElementsByClassName = function(className)
  3. {
  4. var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
  5. var allElements = document.getElementsByTagName("*");
  6. var results = [];
  7.  
  8. var element;
  9. for (var i = 0; (element = allElements[i]) != null; i++) {
  10. var elementClass = element.className;
  11. if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
  12. results.push(element);
  13. }
  14.  
  15. return results;
  16. }
  17. }
  18.  
  19. function pokaz(divname,evencik) {
  20. var chmurka = document.getElementsByClassName(divname);
  21. chmurka.style.visibility = "visible";
  22. chmurka.style.left = evencik.clientX + 5;
  23. chmurka.style.top = evencik.clientY + 5;
  24. }
  25.  
  26. function ukryj(divname) {
  27. var chmurka = document.getElementsByClassName(divname);
  28. chmurka.style.visibility = "hidden";
  29. }


i nadal nie działa ;/

Pomoże ktoś ?
viking
Z tego co widzę to ten cały JS jest zbędny http://downloads.sixrevisions.com/css-tooltips/index.html albo http://www.menucool.com/tooltip/css-tooltip
lukasz108min
Hmm a czy gdy wykorzystam tylko css jest możliwość zrobienia żeby mozna było najechać na dymek i np. kliknąć link ?

Przymyślałem to z css i raczej być nie może ponieważ planuje używać ajaxa w takiej samej sytuacji jak te chmurki więc i tak musze wiedzieć jak to zrobić ;/


Pomoże ktoś ?
toffiak
Może to pomoże, zwróć uwagę na to że javascript jest umieszczona na dole przed tagiem zamykającym body [źródło].
Skrypt zmienia visibility dla elementu który występuje przed elementem go wywołującym, jest podatny na błędy, nie sprawdza czy poprzedzający element jest rzeczywistym "dymkiem".

PS Skąd ta chęć napisania własnego skryptu gdy "tooltipów" są tysiące, znacznie lepszych niż to co ja podałem ?
lukasz108min
Z ciekawości czy potrafie smile.gif Właśnie widziałem dużą liste tooltips i chyba skorzystam z jednego z nich ale najpierw zrobie żeby ten mój zaczoł działać, dzięki za pomoc !
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.