Autor Zpráva
rallyeman
Profil
Dobrý den,
po celodenní pátrání a přemýšlení bych chtěl poprosit o radu. Pročetl jsem dnes snad 1000 diskuzí, ale nikde řešení pro můj problém.
Mám web, kde přes jQuery fci load() refreshuji část stránky. Refresh mi dá se říct, funguje. Problém ale nastal, když chci použít textový editor postavený na knihovně JAK od Seznam.Při refreshi přes fci load() se editor nezobrazí. Nejde tak ani o editor, pokud mezi tagy <script> vložím jenom alert(), taky se nic nestane. Problém nastává jenom přes funkci load() s použitím internetového odkazu. V tomto případě se javascripty nějak ignorují či co.

Stránky jsou na http://dp.sjweb.cz/main.php

V menu jsou volby Editor load a Editor load2.

Editor load odpovídá zápisu $('#refresh_container').load('student_sz.php?student_id=5-10'); tedy vkládám samotný soubor. Zde se editor zobrazí. Nicméně se zde dostávám trochu do komplikací s využitím formulářů, protože po odeslání se zobrazí jenom soubor student_sz.php. Toto by se dalo vyřešit využitím action="", ale nejdříve bych se chtěl zeptat zda nejde zprovoznit druhou verzi.

Editor load2 odpovídá zápisu $('#refresh_container').load('?menu=student_sz&student_id=5-10 #refresh_result'); tedy verze kterou bych potřeboval rozchodit. Bohužel pokud vracím jenom část HTML stránky,kde dle GET parametru "menu" includuju příslušný php soubor(student_sz.php), javascript nereaguje. Zkoumal jsem to přes Firebug, našel pár chyb, odstranil je, ale problém stejně přetrvává. Zkoušel jsem i fce live(), ale nepomohla, nebo nebyla správně použita. Přitom z odkazu http://dp.sjweb.cz/main.php?menu=student_sz&student_id=5-10-15 editor funguje dle představ.

Proto bych Vás chtěl poprosit o radu co a jak. Za každou odpověď moc děkuji!
Chamurappi
Profil
Reaguji na rallyemana:
Element <script> vložený do innerHTML jiného elementu se nikdy nevykonává. Tomuto pravidlu je vhodné uzpůsobit logiku aplikace — aby to nebylo potřeba. Neměl bys zpracovávat řetězec jako skript, ale můžeš na podkladě toho řetězce (třeba HTML komentáře v něm) zavolat nějakou již přichystanou funkci.
Viz třeba Ajax ignoruje vložené javascripty.
rallyeman
Profil
Děkuju za odpověď, musel tomu opravdu přizpůsobit logiku aplikace, ale nyní se zdá, že už vše funguje jak má. I tak díky za odpověď!

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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