Autor Zpráva
fos4
Profil
Zdravim, mam takovy maly problem. ajaxem si nactu HTML kde mam element s ID a dalsi elemnt ktery ma onclick = function() {document.getElementById(id)..}.
Pokud tedy na strance na neco kliknu, provede se ajax a do stranky se vlozi vraceny html kod, bohuzel uz nefunguje onclick protoze to jakoby nezna to ID, pokud si to vytahnu a pustim onfly tak to frci. Nevite nekdo jak tohle vyresit ? Zkousel jsem ruzne veci ale proste eee. diky
Joker
Profil
fos4
Možná by fungovalo, kdyby se místo innerHTML použilo skutečné vytváření a zařazování těch prvků do stránky (createElement, createTextNode, appendChild). Ovšem jestli jich je hodně, bude to trochu vopruz.
habendorf
Profil
Joker

To už by bylo lepší jen přiřadit to id skriptem tomu vrácenému elementu.
panhuhu
Profil
hm, asi musíš znovu udelat eval skriptu, aby si to našlo nové prvky, jejich ID a načetlo na nich onclick. Zkus zagooglit "ajax eval script" nebo tak nějak.
peta
Profil
fos4
- mas dobre svicky?

— Moderátor (Ch): Zkráceno. Ve zbytku příspěvku se autor snažil na problematice benzínových motorů ukázat, že o zmíněném problému nic konkrétního neví. —
fos4
Profil
jde to o to ze ono HTML si generuju xslkem proto neaka tvorba elementu v js nepripada v uvahu.. akorat potom to proste nezna ty ID :(

zatim jedine reseni ktere mne napada je rozkouskovat retezec a vytavret tagy a nastavovat jim par. a in html..ale takovy parser se mne opravdu psat nechce, neni to moc elegantni reseni problemu...
fos4
Profil
Vyreseno:
onclick:
var x = "document.getElementById('ID elementu ktery se nacetl ajaxem').style.display = 'block';";window.setTimeout(x, 1);return false;
peta
Profil
Chamurapi Ty ses proste pitomec.
Ten prispevek mel slouzit jako navod, aby pochopil, ze z toho, co napsal on se neda nic vycarovat. Tim, zes to smazal, tak tu bude psat porad takove prispevky a nikdy mu nemusi dojit, jake podstatne informace musi k reseni uvest.
Kdyz by ty informace uvedl, tak by mozna prisel na reseni sam.
Vse ostatni o vytvareni SCRIPT tagu uz bylo totiz receno a pouzivaji to ajax knihovny viz Joker panhuhu.

Hele, a kdyz uz prohlasis, ze o problemu ni nevim, tak to predpoklada, ze o nem vis ty. Proto si muzes dovolit to napsat.
Mozna jsem to prehlidl, ale tva rada mu pomohla jak?

Mozna se ti to zdalo, ale problem jsem pochopil celkem jasne. Autor pouzil jakysi nezmineny script, ktery neco nedela. Bohuzel nevime, zda pouziva pro vypsani innerHTML a zmineny script je v beznem tagu nebo, zda je v tegu SCRIPT. To vse by vyresil jeden odkaz na stranecku. Bohuzel jsi muj prispevek smazal a tak je problem neresitelny.
Jeho reseni s casovacem pouze resi chybu, ktera muze / nemusi byt ve zbytku scriptu. Casovacem lze resit mnoho veci s generovanym kodem az po otvirani zablokovanych pop-up oken.
Bubák
Profil
Hele, a kdyz uz prohlasis, ze o problemu ni nevim, tak to predpoklada, ze o nem vis ty.
...
Bohuzel jsi muj prispevek smazal a tak je problem neresitelny.

Hele, bohužel mi to nedá, abych odpověděl tvým stylem:
google.cz trvale udržitelná kráva
fos4
Profil
Pro uplnost a aby vsichni pochopili o co jde :-)
window.onload = function() {
   new Ajax.request('/stranka.php', {
   onSuccess : function(transport) {
      document.body.innerHTML += transport.responseText;
   }
  })
}



A transport.responseText je HTMLko napr. :

<div>
  <a href="#" onclick="document.getElementById('block').style.display = 'block';return false;">Zobraz blok</a>
 <div id="block" style="display:none;">
  AHOJ
 </div>
  
</div>


A probvmel nastava ze pokud neco vlozite pres innerHTMl a obsahuje to ID tak pak nebude fungovat dany onclick.. ale pokud si to zkusite onfly js tak jo.. reseni pres setTimeout je sice hloupe ale jedine co funguje...

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:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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