2016-01-20 39 views
1

閃爍我有一個簡單ASPX頁面像這樣:ASP.NET jQuery的菜單上回發

<!-- 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 --> 

的LinkBut​​ton點擊(回發),頁面在IE11閃爍鉻Opera。 同時在Firefox一切都OK。

看起來像是呈現UL在列表頁上,然後將其作爲菜單並在瀏覽器中顯示第一步。

幫我解決這個問題,因爲頁面有很多PostBack操作。

回答

1

正如你所提到的,ASP.Net的LinkBut​​ton做了回發。然後這將重新加載服務器的整個頁面,以便重新加載菜單,並且您將看到重新繪製的頁面。

您可以將您的非靜態內容放入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應該爲您提供實現該信息所需的信息。

0

嘗試設置到第二等層面顯示你所有的UL項目:無 並添加以下行到你的初始化字符串:

$(function() { 
    $('.menu').menu(); 
    $('.menu li ul').show(); 
}); 
0

設置完成後:

<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來解決,但由於某些原因,這不適合我