FraggelMedlem sedan sep. 2003301 inlägg
<div name="myDiv">
rad1<br />
rad2<br />
rad3<br />
rad4<br />
rad5<br />
</div>
Om jag ställer fråga
myDiv.style.height
så får jag inget vettigt svar för att jag inte satt höjden på divtaggen via CSS. Hur kan jag utan att först bestämma höjden få reda på hur hög min div är i pixlar räknat.
JojoxxMedlem sedan juni 20004 308 inlägg Jag har i gammal funktion i layerlib.js, getLayerHeight() http://www.jojoxx.net/jscript/libs/#layerlib
Men använd id istället för name.
FraggelMedlem sedan sep. 2003301 inlägg Dynamiska divtaggar
Jag har skrivt asp script som skapar en TOC ur en tabell från en databas.
Detta genererar en hel del div taggar av olika höjd.
Jag kommer att behöva dölja och visa dess i tid och otid, och jag vill inte behöva ladda om sidan från servern varje gång. Så jag har just nu löst det (dev time) med att sätta ett fast värde på höjden av divtaggen.
Vad jag vill göra är att kolla divtaggens höjd och lagra det in en Array och hämta upp värdet i java scriptet dynamiskt.
Tips ???
<script language="javascript">
<!--
function menuBlockCollapse()
{
// Antalet block att kollapsa
var nbrs_of_menu_blocks = <%=intParentCount%>
// Antalet block måste sättas automagiskt
// Måste lösa detta maskinellt men hur...
for(i=1;i<=nbrs_of_menu_blocks;i++)
{
eval('menuBlock'+i).style.height='1px';
eval('menuBlockButton'+i).innerText='+';
}
}
function menuBlockExpand(arg_block_nbr, arg_block_height)
{
if(eval('menuBlockButton'+arg_block_nbr).innerText=='+')
{
menuBlockCollapse();
eval('menuBlock'+arg_block_nbr).style.height=arg_block_height;
eval('menuBlockButton'+arg_block_nbr).innerText= '- ';
}
else
{
eval('menuBlockButton'+arg_block_nbr).innerText='+';
eval('menuBlock'+arg_block_nbr).style.height='1px';
}
}
//-->
</script>
<body bgcolor="#ffffff" style="margin-right:0;">1 - <span class="menuControl" name="menuBlockButton1" id="menuBlockButton1" onclick="menuBlockExpand('1','40px');">+</span>
<a class="parent" href="min.asp">Meny 1</a>
<div class="menuBlock" name="menuBlock1" id="menuBlock1" >
<span class="menuControl"></span><a class="parent" href="min.asp">Meny 1</a><br />
5 - Meny 11<br />
6 - Meny 12<br />
15 - Menu 13<br />
</div>
2 - <span class="menuControl" name="menuBlockButton2" id="menuBlockButton2" onclick="menuBlockExpand('2','40px');">+</span>
<a class="parent" href="min.asp">Meny 2</a>
<div class="menuBlock" name="menuBlock2" id="menuBlock2" >
<span class="menuControl"></span><a class="parent" href="min.asp">Meny 2</a><br />
8 - Meny 21<br />
</div>
3 - <span class="menuControl" name="menuBlockButton3" id="menuBlockButton3" onclick="menuBlockExpand('3','40px');">+</span>
<a class="parent" href="min.asp">Meny 3</a>
<div class="menuBlock" name="menuBlock3" id="menuBlock3" >
<span class="menuControl"></span><a class="parent" href="min.asp">Meny 3</a><br />
7 - Meny 31<br />
9 - Meny 32<br />
10 - Meny 33<br />
</div>
4 - <span class="menuControl"></span><a class="parent" href="min.asp">Meny 4</a><br />
11 - <span class="menuControl" name="menuBlockButton4" id="menuBlockButton4" onclick="menuBlockExpand('4','40px');">+</span>
<a class="parent" href="min.asp">Meny 5</a>
<div class="menuBlock" name="menuBlock11" id="menuBlock4" >
<span class="menuControl"></span><a class="parent" href="min.asp">Meny 5</a><br />
12 - Meny 51<br />
13 - Meny 52<br />
14 - Menu 53<br />
</div>
16 - <span class="menuControl" name="menuBlockButton5" id="menuBlockButton5" onclick="menuBlockExpand('5','40px');">+</span>
<a class="parent" href="min.asp">Menu 6</a>
<div class="menuBlock" name="menuBlock16" id="menuBlock5" >
<span class="menuControl"></span><a class="parent" href="min.asp">Menu 6</a><br />
17 - Menu 61<br />
</div>
18 - <span class="menuControl"></span><a class="parent" href="min.asp">Menu 7</a><br />
JojoxxMedlem sedan juni 20004 308 inlägg Fortsätt diskusionen i samma tråd på länge som frågan är den samma, annars blir det väldigt svårt att följa ämnet. Ovan har du ett exempel på hur man kollar höjden på ett element (en div i ditt fall). Men jag undrar om du verkligen behöver blanda in JavaScript för just detta. Varför kan du inte låta webbläsaren flöda om <div>'arna automatiskt och sedan välja att visa dem eller inte genom att skifta på egenskapen display mellan "block" och "none"?