ASP.NET jQuery 菜单在回发时闪烁
ASP.NET jQuery Menu blinks on postback
我有一个简单的 aspx 页面,如下所示:
<!-- Other code -->
<script>
$(function() {
$( "#menu" ).menu();
});
</script>
<ul class="menu">
<li>Action1
<ul>
<li>Action1-1</li>
<li>Action1-2</li>
</ul>
</li>
</ul>
<asp:LinkButton ID="LinkButton1" runat="server" Text="Button" />
<!-- Other code -->
单击 LinkButton 时(回发),页面在 IE11、Chrome[ 中闪烁=29=]、歌剧。
同时在Firefox一切正常
看起来它在页面上呈现 UL 作为列表,然后将其作为菜单,第一步在浏览器中可见。
帮我解决这个问题,因为页面有很多PostBack动作。
尝试将所有二级和其他级别的 ul 项目设置为 display:none
并将以下行添加到您的初始化字符串中:
$(function () {
$('.menu').menu();
$('.menu li ul').show();
});
如您所述,ASP.Net LinkButton 执行回发。然后,这会从服务器重新加载整个页面,这样您的菜单就会重新加载,您将看到页面被重新绘制。
您可以将 non-static 内容放在 UpdatePanel 中,以便仅加载该页面部分。
<!-- Other code -->
<script>
$(function() {
$( "#menu" ).menu();
});
</script>
<ul class="menu">
<li>Action1
<ul>
<li>Action1-1</li>
<li>Action1-2</li>
</ul>
</li>
</ul>
<asp:UpdatePanel>
<asp:LinkButton ID="LinkButton1" runat="server" Text="Button" />
<!-- Other code -->
</asp:UpdatePanel>
要使用 UpdatePanel,您需要包含一个 ScriptManager,可能在您的母版页中。快速搜索 UpdatePanel 应该会为您提供实现此功能所需的信息。
设置后:
<ul class="menu ui-menu ui-widget ui-widget-content">
<li>Action1
<ul style="display: none">
<li>Action1-1</li>
<li>Action1-2</li>
</ul>
</li>
</ul>
眨眼变得不那么烦人了。
但它并不能防止眨眼。
问题可以通过 UpdatePanel 解决,但由于某些原因这不适合我
我有一个简单的 aspx 页面,如下所示:
<!-- Other code -->
<script>
$(function() {
$( "#menu" ).menu();
});
</script>
<ul class="menu">
<li>Action1
<ul>
<li>Action1-1</li>
<li>Action1-2</li>
</ul>
</li>
</ul>
<asp:LinkButton ID="LinkButton1" runat="server" Text="Button" />
<!-- Other code -->
单击 LinkButton 时(回发),页面在 IE11、Chrome[ 中闪烁=29=]、歌剧。 同时在Firefox一切正常
看起来它在页面上呈现 UL 作为列表,然后将其作为菜单,第一步在浏览器中可见。
帮我解决这个问题,因为页面有很多PostBack动作。
尝试将所有二级和其他级别的 ul 项目设置为 display:none 并将以下行添加到您的初始化字符串中:
$(function () {
$('.menu').menu();
$('.menu li ul').show();
});
如您所述,ASP.Net LinkButton 执行回发。然后,这会从服务器重新加载整个页面,这样您的菜单就会重新加载,您将看到页面被重新绘制。
您可以将 non-static 内容放在 UpdatePanel 中,以便仅加载该页面部分。
<!-- Other code -->
<script>
$(function() {
$( "#menu" ).menu();
});
</script>
<ul class="menu">
<li>Action1
<ul>
<li>Action1-1</li>
<li>Action1-2</li>
</ul>
</li>
</ul>
<asp:UpdatePanel>
<asp:LinkButton ID="LinkButton1" runat="server" Text="Button" />
<!-- Other code -->
</asp:UpdatePanel>
要使用 UpdatePanel,您需要包含一个 ScriptManager,可能在您的母版页中。快速搜索 UpdatePanel 应该会为您提供实现此功能所需的信息。
设置后:
<ul class="menu ui-menu ui-widget ui-widget-content">
<li>Action1
<ul style="display: none">
<li>Action1-1</li>
<li>Action1-2</li>
</ul>
</li>
</ul>
眨眼变得不那么烦人了。
但它并不能防止眨眼。 问题可以通过 UpdatePanel 解决,但由于某些原因这不适合我