Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] livequery nie dziala ;/
Forum PHP.pl > Forum > Przedszkole
Agape
Nie mam pojęcia dla czego to nie działa. Mam panel w którym wczytuje strony przez jquery, pozniej przechwytuje klikanie na rozne przyciski/linki we wczytanych stronach przez livequery. Niestety dużo rzeczy na stronie zmieniałem i to co kiedys działało, teraz nie działa. Zaktualizowałem również wszystkie skrypty (mi. jquery, livequery)

glowna funkcja w index.php:
[JAVASCRIPT] pobierz, plaintext
  1. $('#lewo a, #text a, #forma a, #edycja_rabatow a')
  2. .livequery('click', function(event) {
  3.  
  4. //pokaz edycje rabatow
  5. if($(this).attr("class")=="edytuj_rabaty"){
  6. $("#edycja_rabatow").remove();
  7. $("#forma").after('<div id="edycja_rabatow" style="float: right; border: 1px dotted black; margin-right: 10px; padding: 10px;"></div>');
  8. $("#edycja_rabatow").load('funkcje/rabaty.php?rabaty=wyswietl');
  9.  
  10. //usuwanie produktu
  11. }else if($(this).attr("class")=="usun_produkt"){
  12. var answer = confirm("Na pewno usunąć produkt?")
  13. if (answer){
  14. $('#ladowanie').html("usuwanie produktu ..."),
  15. $('#ladowanie').css("visibility", "visible"),
  16.  
  17. $('#ladowanie').load($(this).attr('href'),function(){
  18. $('#text').load("funkcje/produkt.php?produkty=wyswietl&typ=cennik&p="+$("#id_kategorii").val());
  19. setTimeout(function(){$('#ladowanie').css("visibility", "hidden")},5000)
  20. });
  21. }
  22.  
  23. //zapisywanie ceny produktu
  24. }else if($(this).attr("class")=="zapisz_cene"){
  25. $('#ladowanie').html("zapisywanie nowej ceny produktu ..."),
  26. $('#ladowanie').css("visibility", "visible"),
  27.  
  28. $('#ladowanie').load($(this).attr('href')+"&cena="+$(this).parent().prev("td").children("input").val(),function(){
  29. $('#text').load("funkcje/produkt.php?produkty=wyswietl&typ=cennik&p="+$("#id_kategorii").val());
  30. });
  31.  
  32. //zapisywanie nazwy produktu
  33. }else if($(this).attr("class")=="zapisz_nazwe"){
  34. $('#ladowanie').html("zapisywanie nazwy produktu ..."),
  35. $('#ladowanie').css("visibility", "visible"),
  36.  
  37. $('#ladowanie').load($(this).attr('href')+"&nazwa="+$(this).prev("input").val(),function(){
  38. $('#text').load("funkcje/produkt.php?produkty=wyswietl&typ=cennik&p="+$("#id_kategorii").val());
  39. });
  40.  
  41.  
  42. //normalne ladowanie strony
  43. }else{
  44. $('#ladowanie').html("ładowanie strony ..."),
  45. $('#ladowanie').css("visibility", "visible"),
  46. $('#text').load($(this).attr('href'),function(){
  47. setup(),
  48. setTimeout(function(){$('#ladowanie').css("visibility", "hidden")},1000)
  49. });
  50. }
  51. return false;
  52. });
[JAVASCRIPT] pobierz, plaintext


Ładowanie, oczywiście działa i wczytuje content do #text, np edytowanie
  1. Nazwa kategorii:<br><form metod="POST" id="forma" action="./funkcje/zapisz_info_kategorii.php">
  2. <input size="30" id="tytul" name="tytul" type"text" value="'.$e['nazwa'].'"><br><br>
  3.  
  4. Info o kategorii:<br>
  5.  
  6. <input type="hidden" value="'.$_GET['typ'].'" name="typ" />
  7. <input type="hidden" value="'.$_GET['p'].'" name="left" />
  8. </form>
  9. <textarea name="p_opis" id="p_opis" rows="10" cols="70">'.$e['zawartosc'].'</textarea>
  10. <input type="submit" class="submit" value="Zapisz info" />'; ';

ale kliknieciu zapisz info nic sie nie dzieje. Gdy jednak content jest juz w html w #text, a dokladnie:
  1. <div style="margin-left: 200px;">Strona główna:<form metod="POST" id="forma" action="./funkcje/pozycje.php"><br>
  2.  
  3. Zawartość:<br>
  4.  
  5. <input type="hidden" value="zapisz" name="pozycja" />
  6. <input type="hidden" value="glowna" name="typ" />
  7. </form>
  8. <textarea name="p_opis" id="p_opis" rows="10" cols="70">'.$e['zawartosc'].'</textarea>
  9. <input type="submit" class="submit" value="Zapisz info" /></div>

Jak klikne na zapisz info, wykonuje sie funkcja za to odpowiedzialna ...

Jeszcze ciekawsza rzecz jest gdy, mam w #klienci tabele i klikam na <a class="edytuj_rabaty"> wywoluje mi sie odpowiednia funkcja. Nie moge wiec pojac jak jest nie tak, jedno jest pewne, cos zle zrobilem, tylko gdzie jest ten szczegol ...

Prosze o pomoc
mortus
Od wersji 1.3 jQuery istnieje metoda .live, wobec czego nie musisz już używać pluginu livequery. Poza tym ja nie widzę, żebyś Ty w kodzie przechwytywał zdarzenie click dla przycisku formularza. Ty przechwytujesz zdarzenie click, ale dla elementu <a>, który znajduje się w obrębie formularza forma
Kod
#forma a
Pytanie, czy takie <a> w ogóle istnieje i czy ma odpowiednią klasę, bo w kodzie, który podałeś, niewiele widać.
Agape
Ok dzięki, okazało się że że mam małe błędy składniowe w js i parę błędów. Dzięki za zainteresowanie i pomoc, pozdrawiam
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.