2011-12-06 35 views
1

我想在LinkBut​​ton click上实现slideUp jQuery效果,然后在页面上做回发。效果需要600ms才能完成。我面对的问题是,在jQuery效果完成页面之前已经做了回发,所以jQuery脚本在某处中途停止。有没有办法延迟回发,然后做手动回发?jquery + asp.net延迟回发

回答

0

您可以通过调用来在slideUp动画的回调函数中加载/重新加载页面。

喜欢的东西:

$("#myElement").click(function() { 
    $("#otherElement").slideUp(600, function() { 
     // $("#form").submit(); // or 
     // window.location.assign("mypage.aspx"); 
    }); 
}) 

如果你可以发布您的代码,我可以告诉你更多的细节。

+0

probelem是我们不想使用自定义回发,我寻求一种方法来延迟标准回发。 这是我的LinkBut​​ton代码: 的OnClientClick = “变种thisPage =新主页(); thisPage.slideUp();” 的OnClick = “TestLinkBut​​ton_Click”>测试 JS: 功能主页(){ } HomePage.prototype.slideUp = function(){ $(“。welcome”)。slideUp(600).delay(2000); } 我只包含delay(2000)函数来显示我想要的行为。在这个例子中执行slideup然后doPostback。 在页面上我有一个MultiView控件,只想在视图之间切换。 – lekso

3

它可以提供一个功能效果基本show滑动完成时才会执行:

formDiv.slideUp('normal', function() { 
    $(form).submit(); 
    }); 
0

您可以return false阻止回发事件。然后使用正确的LinkBut​​ton名称UniqueID,通过调用__doPostBack手动调用该按钮的回发。

<script type="text/javascript"> 
    function myFunction() { 
     //do stuff 
     setTimeout(function() { delayedPostBack(); }, 1000); 
    } 

    function delayedPostBack() { 
     __doPostBack('<%= LinkButton1.UniqueID %>', ''); 
    } 
</script> 

<asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="myFunction(); return false;" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>