Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery][AJAX][PHP] - operowanie na atrybutach z innego pliku po wczytaniu go do pliku-pojemnika
Forum PHP.pl > Forum > Przedszkole
igreko
Witam, mam problem, a mianowicie:
Mam plik pojemnik.html - w którym znajduje sie div #pojemnik - do którego ładowana jest treśc pliku skrypt.html po przez skrypt js - pojemnik.js.
W pliku skrypt.html jest link, ktory po kliknieciu nie powinien przejsc do strony awartej w atrybucie href - blokada przejscia jest zawarta w skrypcie skrypt.js, ktòry również jes podpięty do pliku pojemnik.js.
Problem polega na tym, że po kliknieciu i tak przechodzi do wskazanej strony. Ładowanie skrypt.html do #pojemnik jest za pomocą ajax w jquery
Link to tylko przyklad, chodzi mi o interakcje tresci pobranej z pliku.php z skryptem.js w innym pliku.chcialbym zeby ta reakcja zachodzila z gory dziekuje i zaznaczam ze nie będe odpowiadal na
tresci, które nic nie wnoszą do tematu.

Jeśli chodzi o to po co to tak wszystko komplikowac to odpowiem ze inaczej byc nie moze

Pojemnik.html
  1. <html>
  2. <head>
  3. <script src="jquery.js"></script>
  4. <script src="pojemnik.js"></script>
  5. <script src="skrypt.js"></script>
  6. </head>
  7. <body>
  8. <div id="pojemnik">
  9.  
  10. </div>
  11.  
  12. </body>
  13. </html>


Pojemnik.js
  1. jQuery(document).ready(function()
  2. {
  3.  
  4. alert('wczytano pojemnik');
  5.  
  6.  
  7. $('#pojemnik').load('skrypt.php');
  8.  
  9.  
  10. });


Skrypt.php
  1. to jest tresc wczytana z skrypt.php
  2. <a href="noload.php">po kliknieciu tego strona nie powinna sie przeladowac</a>


Skrypt.js
  1. jQuery(document).ready(function()
  2. {
  3. alert('wczytano skrypt.js');
  4. $('a').click(function()
  5. {
  6. return false;
  7. });
  8. });


Oprocz funkcji load probowalem jeszcze przeslac dane za pomocą $ajax i $.post rowniez z mizernym skutkiem
avalanche
przypisanie zdarzenia do $('a') spróbuj zrobić funkcją, która umożliwia przypisanie za każdym razem, gdy taki element pojawi się w DOMie.
jeśli dobrze pamiętam, to http://api.jquery.com/on/ - nie mam pewności, bo nie siedzę w JS
igreko
Dzięki, poczytam. W Mojej książce nic o tym nie było.on() jest zalecane od 1.7 ja czytalem książke gdy najnowszą wersją było 1.6 biggrin.gif mam nadzieje że cos pomoze smile.gif ale jestem otwarty na inne rozwiazania jezeli takowe istnieja. Dziękuje za odpowiedź

Dobra, jak zrobic to ze zdarzeniami juz wiem, uzywam metody on() ale to tylko ze zdarzeniami a jezeli chcialbym dodac wlasciwosc css do dynamicznego elemetu strony?
$('#cos').css({'font-color':'red'}); - nie zadziala jezeli elemet zostanie dynamicznie dodany. Prosze o pomoc smile.gif
rad11
Dodaj normalnie do pliku css jakaś klasę która będzie miała te atrybuty i zamiast operować na .css zrób .addClass
igreko
No dobra a jezeli mam dodac html do tresci, której jeszcze nie ma bơ jest dodawana dynamicznie?
$('#cont').html('nowa tresc');
Cont jest pobierane z pliku skrypt.html
Do pliku pojemnik.html
Po przez pojemnik.js w metodzie ajax
Wiem ze to zadziala jezeli to zrobie w tên sposob
  1. $ajax({
  2. url:"skrypt.php",
  3. success:function(data){
  4. $('pojemnik').html(data);
  5. $('#cont').html('nowa tresc');
  6. }
  7. });

Ale jezeli kod:
$('#cont').html('nowa tresc');
Jest podany poza funkcja ten kod nie zadziala, zalerzy mi na tym zeby było można operowac na $('#cont') z kazdego miejsca nawet z innego skryptu js ktory jest podpięty do pojemnika
rad11
No to przeciez Ci napisałem dodaj klasę do tego np:
  1.  
  2. $('#cont').html('nowa tresc');
  3. $('#cos').addClass("red-font");
  4.  


a w pliku css dodaj:

  1. .red-font{
  2. 'font-color':'red'
  3. }
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.