2010-09-21 30 views
2

我已經閱讀了大量有關將jQuery與ASP.NET Web表單整合以利用數據訪問功能的優秀博文,但我很想知道它會是多麼容易在回發之前使用一些jQuery的動畫功能。我可以想到兩個很好的例子:在回發中使用jQuery和ASP.NET web表單

1)當我點擊一個asp:按鈕時,動畫一個div,但是當動畫完成時(或者在回發之後完成動畫?

2)當我點擊gridview中的linkbutton時,淡出gridview行,然後在linkbutton的onclick事件中執行常規回發。

我不知道這個解決方案。我試過的所有東西都在動畫開始前運行回發,或者運行動畫,但是你需要在JavaScript中執行回發(yuck)。

+0

我用jQuery的多次隱藏回發前的按鈕,所以我沒有得到雙擊問題。什麼是你的問題,你需要一個解決方案 - 這並不難。 – Hogan 2010-09-21 16:57:59

回答

4

是的,當然你可以做到這一點。

說,例如,我們採取一個按鈕做一些回傳,

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 

onclick事件 - 導致要在服務器端處理回發。

但是,如果您還定義了一個OnClientClick事件並調用任何帶有返回值的JavaScript函數。它會在JavaScript函數執行後決定回發。

例如,

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" OnClientClick="return DoJqueryAnimations();" /> 

在上面的例子中 - DoJQueryAnimations()是JavaScript函數。我們用「return:」來稱呼它。因此,當函數被調用並決定返回什麼時,回發將等待客戶端函數給出值 - 真(回傳)/假(無回傳)。

在JavaScript函數中,您執行動畫並返回true。

例如:

function DoJqueryAnimations() 
{ 
    //Do some animations here or call other JavaScript function. 
    return true; 
} 
+0

我其實已經嘗試過那樣做。問題是,jquery動畫在javascript函數返回true並回發之前沒有完成它的動作。 – 2010-09-21 22:37:43

+0

以及與滑動畫,並沒有試過,你是真的。我不會等待動畫完成。那麼在大多數動畫函數中,您可以在動畫完成後調用回調函數的方法中提供回調函數,您可以明智地使用它來完成您的目標>>這裏是一個示例>>> http:// api.jquery.com/slideUp/#speedcallback其中它使用持續時間作爲第一個參數,而「回調」函數作爲第二個參數在動畫完成後執行某些操作。希望這會幫助你解決你的問題 – Jsinh 2010-09-22 06:55:29