Autor Zpráva
ich
Profil *
Zdravim,
mám:

var child;
function getarea(picname, selarea, levelmnu) {
............
else if (selarea == 3) {
child = eval(document.all[event.srcElement.getAttribute("id", false)]);
var blb = "foto/" + picname + child + ".jpg";
alert(blb);

document["pic_full"].src = "foto/" + picname + child + ".jpg";
}
}
..............
<table width="100%" border="0" class="collapsed" id="stock_area" onclick="getarea('bild','3')">
<tr>
<td id="tabp1">
<p align="center">
<img width="96" height="100" name="fullp1" id="1"></p>
</td>
<td id="tabp2">
<p align="center">
<img width="96" height="100" name="fullp2" id="2"></p>
</td>
<td class="collapsed" id="tabp3">
<p align="center">
<img width="96" height="100" name="fullp3" id="3"></p>
</td>
...................

potřeboval bych, aby při události onclick="getarea('bild','3') se mi v tý funkci načetlo "id" buňky na které bylo kliknuto (nebo "id" <img>, je to jedno).
Prostě nějak pojmenovat buňku v tabulce, aby po kliknutí na tu buňku se mi do proměné "child" načetlo číslo buňky na kterou bylo kliknuto.

Díky moc
Zbystr
Profil *
nevim zda te chapu, ale moznosti je spousta
napriklad jedna:
onclick='nazev_funkce(this)'


function nazev_funkce(elm){alert(elm.id)}


nebo to muzes resit pres event a target ....
los
Profil *
Ak chceš index bunky, tak napr. nejako takto (netestované):
onclick="getarea(event,this,'bild',3)"
......
var child;
function getarea(e, table, picname, selarea, levelmnu) {
	...
	else if (selarea == 3) {
		for (var el = e.target || e.srcElement; el; el = el.parentNode)
			if (el.nodeType == 1 && el.tagName == "TD" && el.parentNode.parentNode.parentNode == table) {
				for (var index = 0; el; el = el.previousSibling)
					if (el.nodeType == 1 && el.tagName == "TD")
						++index;

				alert(document.images["pic_full"].src = "foto/" + picname + (child = index) + ".jpg");
				break;
			}
	}
}

Ak chceš id bunky, tak namiesto toho cyklu iba prečítaš hodnotu z el.id (ale ak ti naozaj stačí iba index bunky, tak sú tam všetky tie id zbytočné). To HTML by sa dalo opraviť a dosť zjednodušiť...
ich
Profil *
to je přesně ono, díky moc
funguje to i takhle:

onclick="getarea(event,this,'bild',3)"
......
var child;
function getarea(e, table, picname, selarea, levelmnu) {
else if (selarea == 3) {
for (var el = e.target || e.srcElement; el; el = el.parentNode) {
if (el.tagName == "TD")
alert(el.id);
}
}
}

Ještě jestli bych mohl mít dotaz, co znamenaj, respektive kde najdu popis všech těch vlastností (event,this,.target,.srcElement, atd.)
Dík

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