![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 10 Dołączył: 13.03.2014 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Mam problem z podpinaniem js'ów do elementów pobieranych ajaxowo. Dobry przykład jest z dropzone.js Pobieram część strony za pomocą ajax'a. Na końcu jest skrypt:
Próbowałem dać bez document ready ale też nie działało. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Zdarzenia można przypiąć tylko do istniejących elementów. Dlatego w Twoim wypadku musisz przypinać dropzone'y przy każdym zakończeniu żądania ajaksowego.
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 10 Dołączył: 13.03.2014 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Tak, wiem o tym. Mój problem polega na tym iż skrypt jest na końcu zawartości widoku który ajax mi zwraca, tj:
Dodam że ten sam problem mam przy np: http://abpetkov.github.io/switchery/ Ten post edytował NickOver 17.11.2015, 15:18:34 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Bo Ajax takich skryptów nie wykonuje. Musiałbyś parsować odpowiedź, wyciągać te skrypty i odpalać przez eval… albo zmienić sposób zwracania odpowiedzi i kod js przerzucić do miejsca, z którego żądania wykonujesz
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 10 Dołączył: 13.03.2014 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Ok. Przerobiłem wszystko w taki sposób aby zwracał mi json'a z tablicą:
-page - zawartość jaka ma się wyświetlić - działa bez problemu. -script - skrypt js'owy i tu zaczynają się schody ponieważ nadal to nie działa. Gdy dam console.log('asd'); jest ok, ale przy skrypcie z posta wcześniej nic nie działa. Dumpując co zwraca po eval mam obiekt, niestety i tak nie jest on podpinany. Pierwsza moja myśli to że jednocześnie to wszystko odpala, tj. w tym samym momencie przez co tworzy się ten obiekt, ale nie podpina się pod id więc dałem wszystko w , niestety to nie pomogło. Następnie wszystko wrzuciłem w funkcję którą chciałem odpalić z konsoli. Niestety chcąc odpalić ją z konsoli dostałem "is not defined". Może jeszcze wrzucę skrypt który jest odpowiedzialny za obsługę tego jsona:
Mógłby mi ktoś powiedzieć co robię źle? Ten post edytował NickOver 17.11.2015, 17:59:08 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Czy data.script zawiera znaczniki <script>?
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 10 Dołączył: 13.03.2014 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Nie
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A zwykły alert w kodzie w data.script? Działa?
-------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
A dropzone.js jest dołączany gdzieś po drodze?
Tak se myślę czy nie da się ominąć eval przy pomocy dynamicznie stworzonego script, hm -------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 10 Dołączył: 13.03.2014 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
A zwykły alert w kodzie w data.script? Działa? Tak. A dropzone.js jest dołączany gdzieś po drodze? Tak se myślę czy nie da się ominąć eval przy pomocy dynamicznie stworzonego script, hm Tak. dropzone.js jest ładowany razem ze stroną. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A alert w metodzie init DropZone działa?
Wygląda na to, jakbyś nie incjalizował tego modułu. To co robisz to tylko ustawienia opcji (co prawda jest tam metoda init, ale wywoływana przy nadrzędnej inicjalizacji, coś ala onload). Ten post edytował trueblue 17.11.2015, 19:39:27 -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 332 Pomógł: 10 Dołączył: 13.03.2014 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Ok, ogarnąłem w czym jest problem. Mianowicie plik jest jednocześnie wyzwalaczem (co jest według mnie bez sensu, taka mała dygresja). Wyrzuciłem pobieranie tego pliku, teraz pobiera go jquerowe getScript(), niestety to nadal nie rozwiązuje problemu. Funkcja zwraca mi sukces, ale nadal nie chce się podpiąć. Niezrażony próbami wrzuciłem pobrany plik w eval();, niestety nieskutecznie. Ale zauważyłem że mam formularz w formularzu. Usunąłem więc jeden, ale i to nie przyniosło rezultatu (z eval i bez niego na zmiennej ze skryptem) Macie jeszcze jakieś pomysły? A może znacie godny polecenia plugin do wrzucania plików "drag & drop"?
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 6 799 Pomógł: 1827 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Czyli jest właśnie tak, że fragment, który podałeś odpowiada tylko za parametry, a sama inicjalizacja zaszła już wcześniej.
Czy czasem ta opcja nie jest użyteczna: // Disable auto discover for all elements: Dropzone.autoDiscover = false; ? Lub .disable(), obecny skrypt (ustawienie opcji), enable(). -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.06.2025 - 03:04 |