2009-11-26 54 views
0

我正在挖掘與jQuery有關的某些工作,並且我正在嘗試獲取特定的工作流程,但似乎無法解決我的問題。ASP.NET jQuery問題

我瞭解jQuery如何在前端運行,函數被調用或可從document.ready區域內調用,並且在頁面重新加載時(回發後)在前端運行了一些動畫, - 如何,這不是我想要的確切功能。

使用標準的asp.net回發模型(沒有ajax),有以下幾種可能嗎?

1)頁面加載時,一些jQuery執行通過動畫將我的div放到正確的位置。 (工作正常)。 2)用戶可以點擊div(或div本身)中的鏈接之一,然後執行jQuery動畫效果,一旦動畫效果結束,使用javascript回發傳入被單擊元素的頁面。 3)頁面回發,我在頁面重新加載之前完成所有數據處理,然後再次運行我的document.ready jQuery。

我無法得到的部分是#2,我可以通過附加一個CSS類到元素,然後處理該類的.click事件,讓點擊我的元素運行一些jQuery。這項工作很好,但頁面不會回發(爲了方便,點擊的項目是一個LinkBut​​ton)。

如果我手動將回傳代碼放入JScript函數中,並在該jQuery函數塊內的動畫效果鏈的末尾調用該函數,則該頁回傳,但我沒有得到任何jQuery動畫效果。

我真正需要的是能夠做的是

1),直到動畫效果是完整的呼叫jQuery的動畫效果 2)等待 3)完成後,進行網頁提交

我不是任何JavaScript專家,但在此之前已經管理得很好。

任何積分將不勝感激。 Regards

+0

當你留下回傳你的意思是像一個AJAX呼叫發送回您的ASP腳本的POST? (我不熟悉ASP) – William

+0

你能發表一些代碼嗎?這會幫助你得到答案。 – kgiannakakis

回答

2

我認爲你的問題是因爲「LinkBut​​ton」上的JavaScript被繞過。 JavaScript需要進行「回傳」工作。

最簡單的解決方案是將其更改爲「按鈕」。 IMO的「LinkBut​​ton」是不好的,不應該被使用,因爲a)如果你沒有javascript,它是不可訪問的b)用戶應該期望看起來是鏈接(GET)的任何東西都沒有副作用。

+0

+1批評/警告re:linkbutton。 –

0

jQuery動畫是異步的(所以你的瀏覽器不鎖定)。如果您在動畫調用後手動添加回發代碼,回發可能會在動畫有機會之前發生。

考慮將您的回發代碼添加到動畫回調中。回調在動畫完成後調用 - 這聽起來像你想要的。

function prePostBackAnimation() { 
    $('something').animate({ width: 70 }, function() { 
     //jQuery will call this method after the animation finishes. 
     //Add postback code here 
     __doPostBack(theTarget,theArgument); 
    }); 
} 

修改自here的代碼。