Autor | Zpráva | ||
---|---|---|---|
Peet Profil |
Dobrý den, řeším následující problém, který bude snad srozumitelný podle obrázku.
Ve windows phone funguje pouze v zakladnim ie a na androidu nefunguje v žádném browseru. (na pc samozřejmě funguje) Obrázek Respektive v tom samostatném souboru mám např. odkaz kterému v js dávám po kliknutí return false ale ten naprosto ignoruje. |
||
_es Profil |
#2 · Zasláno: 27. 2. 2014, 23:29:29
Ale z toho obrázku ti príčinu problému asi nikto nevyveští.
|
||
Peet Profil |
web
<html> <head> zde načtu jquery a ajaxem si do divu #test načtu html obsah samostatné stránky </head> <body> <div id="test"></div> </body> </html> samostatný soubor <html> <head> $(document).ready(function(){ $("a").click(function(){ return false; }) }) </head> <body> <a href="neco">Odkaz</a> </body> </html> Zapnu web, div se v pořádku naplní ajax proběhne, ale když klikni na odkaz tak return false úplně ignoruje, ale jen v androidu. |
||
_es Profil |
#4 · Zasláno: 28. 2. 2014, 09:54:31
Peet:
„ajaxem si do divu #test načtu html obsah samostatné stránky“ Ako konkrétne si to „načítaš“? To sa ako snažíš do <div id="test"> zapisovať niečo ešte skôr, než je isté, že ten element existuje?
Ten „samotný súbor“ je to, čo v tom prvom kóde „načítaš“? Ako by mali podľa teba fungovať značky <html> , <head> , </head> , <body> , </body> , </html> vo vnútri elementu div?
|
||
Peet Profil |
na webu v hlavním js po načtení documentu načítám
$.ajax({ url: "samostatnySoubor", dataType: "HTML", error: function(){alert("Někde se naskytla chyba, zkuste prosím stránku aktualizovat.")}, success: function(output){ $("div#test").html(output); } }); V tu chvíly se div#test naplní obsahem samostatné stránky no tak ty značky tam nemusí být, ale musím přeci v tom samostatném souboru volat javascript, který je nutný k jeho obsahu. protože když si na webu napíšu v js např. $("#test a").click(.......) a potom načtu do #test obsah ajaxem kde to <a> bude, tak javascript na něho nebude fungovat.. proto např. tu js funkci po kliknutí na <a> mám přímo v tom samostatném souboru. Tudíž když mi ajaxový result naplní #test tak ho naplní jak s nějakými html značkami jako je <a> tak i s javascriptem. Všude funguje jen na androidu ne. |
||
_es Profil |
#6 · Zasláno: 28. 2. 2014, 11:04:33
Peet:
„no tak ty značky tam nemusí být“ Nie, tie značky tam nesmú byť. „musím přeci v tom samostatném souboru volat javascript, který je nutný k jeho obsahu.“ Nemusíš, sprav to tak, aby to fungovalo tak, že v načítaných dátach žiaden JS nie je. „protože když si na webu napíšu v js např. $("#test a").click(.......) a potom načtu do #test obsah ajaxem kde to <a> bude, tak javascript na něho nebude fungovat..“ No tak napíš nejaký iný JS, tak, aby to fungovalo správne. |
||
Peet Profil |
#7 · Zasláno: 28. 2. 2014, 11:10:21
To je přeci nemožné.
Např Ajax mi vrátí jako html <a href="#">Test</a> tento odkaz mi vloží do nějakého divu. jak nyní mohu manipulovat přes js s tím odkazem ? nijak.. |
||
Chamurappi Profil |
#8 · Zasláno: 28. 2. 2014, 11:26:32
Reaguji na Peeta:
Pro pořádek upozorňuji, že elementy <script> vložené přes innerHTML se neinterpretují. Takže pokud AJAXem načteš flák HTML (který by mimochodem opravdu neměl mít vlastní HTML hlavičku) a dáš ho do nějakého elementu, <script> y v něm se nezpracují. To je standardní chování.
„jak nyní mohu manipulovat přes js s tím odkazem ?“ Po tom vložení? Jakkoliv. Před tím s ním manipulovat pochopitelně nemůžeš, protože neexistuje. „Ve windows phone funguje pouze v zakladnim ie“ V jakém jiném prohlížeči jsi to tam zkoušel? (Já bych řekl, že žádný jiný není.) |
||
Peet Profil |
#9 · Zasláno: 28. 2. 2014, 11:31:45 · Upravil/a: Peet
Jsem poučen, že html hlavička se nepředává, ok. Pokud vratím ajaxem <script>y tak v pc prohlížeči fungují ani firebug mi nehlásí chyby, ale ok je to špatně. když potřebný js napíšu do
$("#test").load("soubor.php",function(){ zde js který patří k vrácenému obsahu }); tak také nefunguje.
Jak tedy mohu přiřadit vrácenému obsahu <script> ??? ve windows mobile - v ie - vše OK stejně jako v pc a potom jsem zkoušel v UC browser kde zase fungovalo jen něco. return false funguje pouze na odkazy které mají v atributu href="#" ??? |
||
_es Profil |
#10 · Zasláno: 28. 2. 2014, 12:20:43
Peet:
„Jak tedy mohu přiřadit vrácenému obsahu <script> ???“ Na čo by si mu „priraďoval <script>“? S dynamicky vytvorenými elementmi môžeš pracovať úplne rovnako ako s tými pôvodnými. Ak chceš v kóde v [#6] nejako pracovať s dynamicky vytvorenými elementmi príkazom v 6. riadku, tak daj príslušný kód za ten príkaz. |
||
Peet Profil |
#11 · Zasláno: 28. 2. 2014, 12:23:06
zkusil jsem doladit load a už to vypadá že to jde. Jen mi stále nereagoval ten return false, až když jsem mu dal href="#" tak začal reagovat. na WP už to jde ještě musím později vyzkoušet android, díky za pomoc.
|
||
Časová prodleva: 11 let
|
0