Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JQUERY nie wykonuje funkcji na hiperlaczach
Forum PHP.pl > Forum > XML, AJAX
lexis72
Witam,
Zrobilem taki oto skrypt ktory po kliknieciu w DIV 'klasa' wykonuje zapytanie INSERT do bazy mysql umieszczone w pliku gf.php
Wszystko dziala do momentu w ktorym trescia DIVA nie sa odnosniki do innych stron czyli np zwykly tekst albo znaczniki <br>
W momencie gdy do Diva wstawilem animacje lub nawet zwykle hiperlacze to po kliknieciu w nie strona przenosi sie do tego adresu ale nie wykonuje juz ustawionego przeze mnie zapytania. Po kliknieciu w kazde inne miejsce w Divie zapytanie sie wykonuje. Czy ktos mógłby mi powiedziec czemu tak sie dzieje i ewentualnie pomoc to poprawic? Oto kod:

  1. <script type="text/javascript">
  2.  
  3. $(function(){
  4. $(document).ready(function() {
  5. $('.klasa').click(function() {
  6.  
  7. $.ajax({
  8.  
  9. url: "gf.php",
  10.  
  11. });
  12.  
  13.  
  14.  
  15. });
  16. });
  17. })
  18.  
  19. </script>
  20.  
  21.  
  22. <div class="klasa"><br><a href='http://forum.php.pl/'>asd</a><br><br></div>
_Borys_
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. $(function() {
  3. $('.klasa').click(function() {
  4. $.ajax({
  5. url: "gf.php",
  6. });
  7. return false;
  8. });
  9. });
  10. </script>
[JAVASCRIPT] pobierz, plaintext

return false; anuluje przejście na adres w odnośniku.
$(function(){} oraz $(document).ready(function(){} to to samo a więc po co dwa razy stosować.
lexis72
No tak czyli jak zostawie return false to po kliknieciu w link zapytanie sie wykonuje ale hiperlacze nie odpala... a jak usune to hiperlacze odpala ale sie juz nie wykonuje zapytanie... Tak nie moze byc. Poza tym link to tylko najprostsza forma tego co chce w divie umiescic. Mam kod w Java Script ktory jest czyms na wzor rotatora animacji, kazda animacja ma juz w sobie wbudowane hiperlacze na wybrana strone i umieszczam to w Divie i po kliknieciu w ta animacje tez nie jest wykonywane zapytanie choc jest ona umieszczona w divie. Wychodzi na to ze to dziala tylko na tekst? Jak objac caly div be wzgledu na to co umieszczam w srodku?
_Borys_
Jeśli potrafisz pobrać w jquery adres odnośnika to możesz wykorzystać ajaxowe complete : i w nim przekierować na jakiś adres przy pomocy $(location).attr('href', odnosnik);
Oczywiście return false musi pozostać bo kliknięcie przerzuci przed ajaxem.
complete wykonuje się po zakończeniu połączenia ajaxowego.
lexis72
A co z wstawionym do DIVA elementem java script. Dlaczego po kliknieciu w niego jquery nie wykonuje zapytania? Przeciez jest w divie a to na niego ustawiona jest funkcja CLICK.

EDIT/
Kombinowalem rozne rozwiazania z iframe i innymi elementami html i za kazdym razem jquery wykonywalo zapytanie tylko w przypadku zwyklego tekstu. Gdy pojawialy sie hiperlacza albo bardziej rozbudowane elementy nie reagowal na klikniecia w nie.
turbiński
Jeżeli masz zdarzenie click przypisane do klasy to kliknięcie w cokolwiek co w tej klasie się znajduje powoduje wywołanie click: http://jsfiddle.net/d3qsG/

Cytat(lexis72 @ 1.10.2013, 17:04:48 ) *
Witam,
Zrobilem taki oto skrypt ktory po kliknieciu w DIV 'klasa' wykonuje zapytanie INSERT do bazy mysql umieszczone w pliku gf.php
Wszystko dziala do momentu w ktorym trescia DIVA nie sa odnosniki do innych stron czyli np zwykly tekst albo znaczniki <br>
W momencie gdy do Diva wstawilem animacje lub nawet zwykle hiperlacze to po kliknieciu w nie strona przenosi sie do tego adresu ale nie wykonuje juz ustawionego przeze mnie zapytania.


Może tutaj jest odpowiedź - http://php.net/manual/en/function.ignore-user-abort.php
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.