Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   помогите разобраться в коде (https://javascript.ru/forum/misc/15099-pomogite-razobratsya-v-kode.html)

pernik 13.02.2011 15:14

помогите разобраться в коде
 
прокоментируйте пожалуйста строки а то никак не заберусь
var getdd = document.getElementById('slide').getElementsByTagName("DD");
var getdt = document.getElementById('slide').getElementsByTagName("DT");
var getMenu = document.getElementById('odnaknopka').getElementsByTagName("DT");
	for (var x=0; x<getMenu.length; x++) {
		getMenu[x].onclick=function() {
			if (this.id == "menu1"  && document.getElementById('smenu').className=='') {
			expand (0,document.getElementById('slide').offsetHeight,'smenu')
			document.getElementById('smenu').className = "clicked";
			this.className="expand";
			                                                                            }
			else {
			for (var q=0; q<getdd.length; q++) {
			eNext = getdd[q].firstChild;
			while (eNext.nodeType!=1) {eNext = eNext.nextSibling;}
			ulHeight = eNext.offsetHeight;
			if (getdd[q].offsetHeight > 0) {
			getdd[q].className='';
			getdt[q+1].className='';
			contract (ulHeight,0,getdd[q].id)
				}
			}
			document.getElementById('slide').style.position = "absolute";
			document.getElementById('smenu').style.overflow = "visible";
			contract (document.getElementById('slide').offsetHeight,0,'smenu')
			document.getElementById('smenu').className = '';
			this.className='';
		}
	}
}

	
	for (var i=0; i<getdt.length; i++) {
		getdt[i].onclick=function() {
	document.getElementById('slide').style.position = "relative";
	document.getElementById('smenu').style.overflow = "visible";
	if (this.id.indexOf('item') != -1) {
	for (var z=0; z<getdd.length; z++) {
		if (getdd[z].id.indexOf(this.id) !=-1 && getdd[z].className=='') {
		eNext = getdd[z].firstChild;
		while (eNext.nodeType!=1) {eNext = eNext.nextSibling;}
		ulHeight = eNext.offsetHeight;
		expand (30,ulHeight,getdd[z].id)
		}
		else {
		eNext = getdd[z].firstChild;
		while (eNext.nodeType!=1) {eNext = eNext.nextSibling;}
		ulHeight = eNext.offsetHeight;
		if (getdd[z].offsetHeight > 0) {
		contract (ulHeight,0,getdd[z].id)
		}
		}
		if (getdd[z].id.indexOf(this.id) !=-1 && getdd[z].className=='') {
			getdd[z].className='selected'; 
			this.className='slide';
			}
		else {
			getdd[z].className='';
			ePrevious = getdd[z].previousSibling;
			while (ePrevious.nodeType!=1) {ePrevious = ePrevious.previousSibling;}
			ePrevious .className='';
			}
		}
	}
	}
}
function expand (cY, fY, subY) {
cY=cY+2;
if (cY <= fY) {
document.getElementById(subY).style.height = cY + "px";
setTimeout ("expand("+cY+","+fY+",'"+subY+"')", 10);
}
}

function contract (cZ, fZ, subZ) {
cZ=cZ-2;
if (cZ >= fZ) {
document.getElementById(subZ).style.height = cZ + "px";
setTimeout ("contract("+cZ+","+fZ+",'"+subZ+"')", 10);
}
}

NoResponse 13.02.2011 16:11

что именно непонятно ?

pernik 13.02.2011 16:24

eNext = getdd[q].firstChild; что за eNext ???

SkyLight 13.02.2011 17:58

Вы не поверите, но это переменная. Следующий вопрос...

Кстати, код надо форматировать, пожалейте тех, кто будет его тут читать.

pernik 13.02.2011 20:22

как функции работают ??? почму + и - 2 ???

pernik 14.02.2011 00:08

а перевести в квери реально?

monolithed 14.02.2011 00:34

Цитата:

Сообщение от pernik
как функции работают ??? почму + и - 2 ???

на сайте есть справочник по языку.
Цитата:

Сообщение от pernik
а перевести в квери реально?

разберитесь сперва с основами языка


Часовой пояс GMT +3, время: 00:04.