2012-07-25 35 views
0

我有一個asp.net MVC的局部視圖,裏面它jQuery用於彈出一個文本框的日期選擇器。單擊時使用Ajax取消部分視圖的取消按鈕。在第一次加載時都能很好地工作。但是點擊取消按鈕後,所有的jQuery功能都消失了,例如datepicker停止顯示文本框。任何想法可能是錯誤的嗎?jQuery的功能在ASP.NET MVC的局部視圖中消失

+0

的jQuery如果有事件監聽器在特定的ID(而不是'on'事件處理程序)上,當您重新加載部分視圖時,您可能會消除這些偵聽器。發佈一些代碼,以便我們看到你如何設置一切。 – 2012-07-25 15:40:40

+0

我在部分視圖中具有以下腳本: xiaobing 2012-07-25 23:23:27

回答

1

如果你做任何更新通過AJAX的局部視圖使用jQuery綁定任何事件將需要反彈或使用jquery live約束他們,或對1.7+

$(document).on(events, selector, data, handler);  // jQuery 1.7+ 
+0

我把事件綁定在局部視圖$(document).ready函數中。我認爲每次通過ajax更新局部視圖時都會運行,我錯了嗎? – xiaobing 2012-07-25 23:29:06

+0

@ user1552107 $(document).ready在ajax更新後不會被執行。有很多不同的方法來解決這個問題,最簡單的方法就是使用jQuery的活動綁定,這樣在ajax更新之後,事件不會丟失 – NullReference 2012-07-26 15:00:17

0

當您重新加載您的局部視圖時,舊的(現在替換的)局部元素上的任何處理程序都將丟失。您必須重新綁定它們才能恢復功能。

綁定處理程序的局部腳本塊會起作用。或者,如果您願意,處理AJAX成功或完成回撥的代碼可以重新綁定它們。

相關問題