Autor Zpráva
toom
Profil
Jde o to, že na stránce je několik divů s dynamicky generovaným id např. id=polozka-24..

..a odkazy s onclick=ajaxReplace("polozka-24",'url.cz')

Problém je v tom, že nevím, jak zapsat ten první parametr ve fci ajaxReplace... buď se nestane nic, nebo se provede na pozadí
(pokud dosadím jako parametr this tak se výstup zobrazí správně do aktuálního prvku, ale já ho chci cílit podle id prvku)

Víte jak to správně zapsat?
centi
Profil
Funkciu ajaxReplace síce nepoznám, ale asi očakáva objekt ako prvý parameter. Ak nemôžeš upravovať danú funkciu, tak asi môžeš spraviť jediné:

onclick=ajaxReplace(document.getElementById("polozka-24"),'url.cz') 
toom
Profil
Ta fce je tu http://www.jantichy.cz/vyuka/4iz228/javascript Tam je použitá s "this" a to funguje

Nejhorší na tom je, že chvíli předtím jsem ji úspěšně a bez úprav použil, pak jsem ji odstranil, ale zaboha si nemůžu vzpomenout, jak jsem zapsal tu proměnnou polozka-24, jaký uvozovky nebo tak. Ale fungovala.

Mohl by být problém s tím že měním obsah rodičovskýho prvku? Nevím s body to jde. V js se nevyznám..
centi
Profil
A skúsil si vôbec ten môj tip?

No, ak máš možnosť tú funkciu upraviť, tak skús takto:
function ajaxReplace(element, url)
{
	if (typeof element == "string") {
		element = document.getElementById(element);
	}
	var ajax = ajaxInstance();
	if (!ajax) {
		return false;
	}
	ajax.open('GET', url, true);
	ajax.onreadystatechange = function() {
		if (ajax.readyState == 4) {
			element.innerHTML = ajax.responseText;
		}
	}
	ajax.send(null);
	return true;
}


Po tejto úprave môžeš do fukncie dať ako prvý parameter buď IDčko ako string, alebo priamo nejaký objekt (napr this).
toom
Profil
Ajaj, nezkusil. Vzdal jsem to pro dnešek. :-/
Věřil jsem, že tam tohle je.. ale to sem zahlíd v jiný verzi toho scriptu na netu a nedocvaklo mi.
Děkuju.

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:

0