Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Javascript wczytywany raz na podstrony ajaxowe.
neo1986kk
post
Post #1





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


Witam, mam taki układ strony, że wczytuję tylko lewy pasek i z niego wybieram dział, który chcę wyświetlić po prawej stronie. Po kliknięciu oczywiście ajaxem wczytuję content i pojawia mi się wszystko elegancko, ale mimo, że jest w nim input.date, a na początku razem z indexem dodałem <script src="date.js">, a tam mam ustawione ('.date').datepicker(); to jak sie domyślacie to nie zadziała, bo już drugi raz nie wczytuje dokumentu i nie sprawdza pod kątem klas inputów.

Czy macie jakieś rozwiązanie, oprócz dodawania:

  1. $(document).ready(function(){
  2.  
  3. $('.date').datepicker();
  4.  
  5. }


w tym wczytywanym ajaxowo pliku.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
trueblue
post
Post #2





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Funkcja "success" w wywołaniu ajaxa poprzez jQuery.
Jeśli czysty JS, to: if (xmlhttp.readyState==4 && xmlhttp.status==200)

Ten post edytował trueblue 16.01.2015, 18:48:17
Go to the top of the page
+Quote Post
neo1986kk
post
Post #3





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


Nie o to chodzi....

succes:: function(data){
$('#prawyContent').html(data)
}

Czyli ja zaczytuje ajaxem cały content razem z templejtem, ale kiedy contentem jest "<input class="date"/>" a w głównym indexie mam zapisane:

$('.date').datepicker();

to po zaczytaniu ajaxem treści do prawego Contentu na tym inpucie nie zadziała datepicker
Go to the top of the page
+Quote Post
trueblue
post
Post #4





Grupa: Zarejestrowani
Postów: 6 807
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


O to, o to.

  1. success:function(data){
  2. $('#prawyContent').html(data);
  3. $('.date').datepicker();
  4. }


Zdarzenie onDOMReady nie jest wywoływane przy doczytywaniu treści ajaxem.

Ten post edytował trueblue 16.01.2015, 19:56:18
Go to the top of the page
+Quote Post
neo1986kk
post
Post #5





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


no pewnie pomaga, ale to jest troche bez sensu, bo jeśli wczytywane ajaxem treści są bardzo rozwinięte i obsługują potężne aplikacje javascriptowe, to za każdym razem trzeba by pisać w success każde możliwe zdarzenie
Go to the top of the page
+Quote Post
Daimos
post
Post #6





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Zapominasz, że jeśli zdarzenia są powtarzalne, to wystarczy zrobić uniwersalną funkcję. np.
[JAVASCRIPT] pobierz, plaintext
  1. function simpleAjax(contentId, url)
  2. {
  3. $.ajax({
  4. success: function(data)
  5. {
  6. $('#'+contentId).html(data);
  7. }
  8. })
  9. }
  10. // wykorzystanie
  11. simpleAjax('mojeId', 'mojeUrl');
[JAVASCRIPT] pobierz, plaintext

Oczywiście są lepsze sposoby, chodzi o sam zamysł. Co się powtarza, to skracasz, piszesz funkcje, klasy. Równie dobrze możesz sobie napisać obsługę linków, które ogarniesz hurtowo, definiując jedynie atrybuty data-
Czyli np. definiujesz, że wszystkie linki z klasą .ajax korzystają z danej metody i tworzysz linki w formie
  1. <a href="#" data-result-div="idGdzieMaBycZawartosc" data-url="skadBracDane" class="ajax">Ajax link</a>

Teraz tylko podpinasz do wszystkich linków $('.ajax'). wybraną funkcję i sprawa załatwiona


Ten post edytował Daimos 17.01.2015, 14:02:23
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 23:23