• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Pjax - ładowanie skryptów

Cloud VPS
0 głosów
540 wizyt
pytanie zadane 28 lutego 2018 w JavaScript przez Assasz Nałogowiec (30,460 p.)

Witam.

Aktualnie buduję aplikację webową wykorzystującą jQuery Pjax do asynchronicznego ładowania treści HTML. Wszystko działa bez zarzutu z wyjątkiem jednej rzeczy: prócz skryptów JS wykorzystywanych przez całą aplikację są również skrypty przyporządkowane dla danych podstron (np. app.signup.js dla strony signup), które są ładowane w momencie załadowania danej podstrony. Problem tkwi w tym, że owe skrypty nie są po załadowaniu interpretowane (dopiero za drugim i kolejnym wejściem na daną podstronę) lub są interpretowane tylko za pierwszym razem, od razu po załadowaniu.

Pierwszy wariant (według dokumentacji):

$(document).on('ready pjax:end', function () {
     ...

Drugi wariant:

$(document).ready(function () {
    ...

Do tego trzeci wariant, który działa, lecz jest niepraktyczny ze względu na powtarzanie kodu:

$(document).on('ready pjax:end', function () {
   // to samo
}

$(document).ready(function () {
   // to samo
}

Próbowałem w trzecim wariancie zrobić po prostu jedną funkcję opakowującą cały ten kod i podstawić ją do obu event handlerów, ale o dziwo nie działało. Zresztą to rozwiązanie i tak wydaje mi się nieeleganckie. 

Zatem moja pytanie brzmi: jak to zrobić dobrze, by działało? Da się jakoś połączyć oba te event handlery w jeden? Bo ready przy on ( $(document).on('ready, pjax:end', function () {... ) nie działa. Byłbym wdzięczny za jakąś poradę, sam niestety specem od JS nie jestem.

Pozdrawiam. 

komentarz 1 marca 2018 przez xmentor Nałogowiec (49,520 p.)
I za każdym razem podpinasz walidacje, jak i event click do przycisku pokazywania hasła, dlatego ten błąd z pokazywaniem hasła co drugie wejście.
komentarz 1 marca 2018 przez xmentor Nałogowiec (49,520 p.)

No i taki kod:

function init() {
  //kod
}

$(document).ready(function () {
    console.log('ready');
    init();
});

mi działa normalnie

komentarz 1 marca 2018 przez Assasz Nałogowiec (30,460 p.)

Mam identycznie i działa tylko za pierwszym razem...

komentarz 1 marca 2018 przez xmentor Nałogowiec (49,520 p.)
To dość dziwna sytuacja :D
komentarz 1 marca 2018 przez Assasz Nałogowiec (30,460 p.)
No nic, na razie zostanę przy tym rozwiązaniu, które działa, może coś jeszcze wymyślę :) Dzięki za poświęcony czas.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
3 odpowiedzi 4,607 wizyt
pytanie zadane 24 lutego 2016 w JavaScript przez Gh0sT321 Nowicjusz (160 p.)
0 głosów
1 odpowiedź 214 wizyt
pytanie zadane 10 lipca 2015 w JavaScript przez Czort Nałogowiec (32,500 p.)
0 głosów
0 odpowiedzi 176 wizyt

93,485 zapytań

142,417 odpowiedzi

322,765 komentarzy

62,898 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...