2009-02-03 95 views
0

我正在爲站點構建後端管理面板,我遇到了jQuery和AJAX代碼用於構建頁面的問題。使用jQuery和AJAX重新綁定動態內容的功能

加載時,我將操作綁定到某些表格字段,允許用戶添加或刪除顏色或大小。當他們提交表單時,我清空表格並使用AJAX生成一個新表格,然後將新表格放入表格中。

不幸的是,新窗體並不像(我預料的那樣)受到$(document).ready函數的影響。我想知道是否有方法重新調用document.ready函數來將操作綁定到頁面中的新元素,或者在不通過document.ready函數的情況下調用jQuery函數。

我可以在香草javascript中重寫jQuery函數,並以此方式調用它,但我更願意在所有可能的情況下重用jQuery代碼。

我發現了一些關於如何使用ASP.NET和UpdatePanels的東西,但這個網站是在PHP中,它使用基本的AJAX查詢插入到數據庫中,重新獲取結果,然後建立結果表。

任何想法?

回答

6

您是否嘗試過使用live events?這僅適用於1.3。

對於以前的版本,您可以使用live query插件。有了這個,你可以運行匹配和不匹配的監聽器(當匹配發生時運行代碼)。您還可以使用livequery.run方法強制對綁定進行評估。

更新:

對於任何人,現在這個發現,現場方法已被棄用的1.7。 Live有一些主要的嘮叨問題,因此被替換爲更強大的功能:on。即使你不在1.7,但你應該高度考慮至少使用delegate(jquery 1.4.2),因爲現場有一些苛刻的限制

+0

完美,這正是我所尋找的。沒有意識到我正在使用1.2.6。將.click(function())更改爲.live(「click」,function())並且完美運行。謝謝! – ewengcameron 2009-02-03 13:45:53

1

現場活動似乎是最好的答案;但如果不是,則應簡化$(document).ready()函數,使其調用初始化函數。稍後,在加載您的AJAX內容後,您只需再次調用它。

相關問題