当你隐藏一个垂直项目时,哪个html容器允许这个子句上升?

时间:2012-12-21 13:29:43

标签: javascript jquery asp.net html css

我的应用程序有一个垂直菜单。每个菜单都是一个链接按钮。这些链接按钮放在html 表格单元格 <td>中,我创建并将它们放在后面的ASP.NET代码中。

要创建菜单,我会menuCell.Controls.Add(newMenu); 当我点击一个有sumenus的链接时,会显示在主链接按钮下面:

enter image description here

当我再次点击它时,子菜单必须隐藏但是它们占据的位置一直停留在那里。我用jquery做到了:

function toggleSubMenu(smenu) {
        $('.'+smenu').toggle();
    }

查看Menu2和Menu 3之间的空白区域。

enter image description here

所以主要目标是删除这个空间。 是否有任何Asp.NET占位符或容器自动生成?或者我是否必须使用jQuery手动上传Menu3及其下方的所有内容?

完整的HTML代码: MenuCell 会保留菜单。同样,每个菜单都会创建并放在后面的ASP.NET代码中。

<body MS_POSITIONING="Gridlayout">
    <!-- Logo -->
    <form id="Menu" method="post" runat="server">
        <table id="mainTable" style="Z-INDEX: 101; LEFT: 0px; POSITION: absolute; TOP: 0px" tabIndex="-1" height="800" cellSpacing="0" cellPadding="0" border="0" runat="server" width="125px">
            <tr align="left">
                <td style="WIDTH: 125px" tabIndex="-1" vAlign="bottom" align="middle" colSpan="2" height="55"><IMG id="imgLogo" tabIndex="-1" height="50" width="50" align="middle" border="0" runat="server">&nbsp;
                </td>
            </tr>
            <TR>
                <TD style="WIDTH: 125px" vAlign="top" align="middle"></TD>
                <TD vAlign="top" align="left" colSpan="1" rowSpan="2"><IMG id="imgLine" style="WIDTH: 1px" height="720" hspace="0" width="1" vspace="0" border="0" runat="server"></TD>
            </TR>
            <tr align="left">
                <td id="menuCell" style="WIDTH: 125px" tabIndex="-1" vAlign="top" align="left" height="740" runat="server"></td>
            </tr>
        </table>
    </form>
</body>

我无法将整个呈现的代码放在隐私政策中,但每个菜单和子菜单链接在<a> <td> menuCell内呈现为 <td id="menuCell" style="WIDTH: 125px" tabIndex="-1" valign="top" align="left" height="740"> <a id="Menu1" style="width:124px;LEFT:1px;TOP:8px;POSITION:relative;">Menu1</a> <br /> <a id="Menu6" style="width:124px;LEFT:1px;TOP:11px;POSITION:relative;">Menu6</a> <br />

呈现的代码是:

{{1}}

2 个答案:

答案 0 :(得分:0)

ASP.NET将在服务器端处理代码。加载页面后,只能使用Javascript或Javascript库(如jQuery)来操作DOM。

答案 1 :(得分:0)

我将每个子菜单放在Asp.net面板中:

Panel psubmenu = new Panel();
HyperLink hylSMenu = new HyperLink();
psubmenu.Controls.Add(hylSMenu);

然后将Panel放入整个容器中:

menuCell.Controls.Add(psubmenu);

像这样我切换panel而不是每个子菜单。