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.