webForumDet fria alternativet

Kolla om Lager är Synligt

1 svar · 157 visningar · startad av nill

nillMedlem sedan okt. 2001387 inlägg
#1

På vårt lilla community dyker där upp ett lager(typ en popup) om man får meddelande. Men om man nu får meddelande samtidigt som man i det lager håller på att svara på ett meddelande så blir det två lager med samma ID-namn som hamnar över varandra. Detta är ju lite buggigt och det går dessutom inte att dölja lagrerna (förmodligen beroende på att båda har samma ID).

Kan man på något sätt kolla innan lagret visas om det finns något annat lager med det ID't som är synligt och i så fall inte utföra resten av koden ?

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Är det inte bättre i så fall att kolla om lagret finns hellre än att bara kolla om det är synligt. Annars riskerar du att få 2 lager med samma namn -- ett synligt och ett gömt. Kolla om lagret finns kan du göra med en sån här funktion;

function layerExist(Id){
	if (document.all){
		return document.all[Id];
	} else if (document.getElementById){
		return document.getElementById(Id);
	} else if (document.layers){
		return 	document.layers[Id];
	}
}

Kolla med if(layerExist('mitt_lager')).

Att kolla om lagret är synligt kan du göra med;

function isVisible(Id){
	if (document.all){
		return (document.all[Id].style.visibility == "visible");
	} else if (document.getElementById){
		return (document.getElementById(Id).style.visibility == "visible");
	} else if (document.layers){
		return 	(document.layers[Id].visibility == "show");
	}
}

Kollas med if(isVisible('mitt_lager')) men det förutsätter att egenskapen visibility:visible; är satt när lagret skapas.

Men som sagt, den första varianten är att föredra eftersom du ändå inte "får" ha 2 element med samma id.

------------------
/ J

123 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)