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
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
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
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
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
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
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
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
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.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: