2014-01-14 67 views
0

我有一個問題。當我使用Ajax.Actionlink並在PartialView中重新加載部分頁面時,我的jquery調用不起作用。例如一些簡單的功能,比如將一些插件應用到「選擇」元素。NET MVC Ajax.ActionLink和jquery

我不認爲有代碼需要,因爲這是通用的問題。

所以我有興趣做我必須以某種方式重新應用相同的函數調用我跑Ajax.ActionLink以後。

的onSuccess代碼,我可以重新申請我的插件選擇元素之後可能的onComplete?

簡單Ajax.Actionlink:

  @Ajax.ActionLink(" ", MVC.Customer.GetCustomerNotes(customer.Id), new AjaxOptions() 
        { 
         HttpMethod = "GET", 
         UpdateTargetId = "PopupHolder", 
         InsertionMode = InsertionMode.Replace, 
         OnSuccess = "ShowPopup('" + customer.LastName + " " + customer.FirstName + " notes')" 
        } 
        , new { @class = "icon-file", title = "View Notes" }) 

jQuery插件的呼叫正常jQuery的定義:

$(function(){ 
$('select').select2(); 
}); 

的一點是這個插件不工作(不附加選擇)在彈出aka後微軟ajax.actionlink的ajax調用...

回答

0

把$('select')。select2();在部分視圖中的標記末尾的腳本標記中。

0

這是因爲您的插件調用在第一次加載文檔後執行一次。但是,在標記更改後,您應該調用此插件,以使其使用新的標記。所以,你可以把這個代碼<script>標籤的局部視圖(如@SethMW在他的回答中提到):

<script> 
    $('select').select2(); 
</script> 

或使用OnSuccessOnComplete處理程序這段JavaScript(如你在問題中提到):

OnComplete = "$('select').select2();" 

UPD。如果在您的應用程序中有許多這樣的場景,請嘗試在佈局模板中設置全局jQuery ajax處理程序.ajaxSuccess()。例如:

$(document).ajaxSuccess(function() { 
    $('select').select2(); 
}); 
+0

我有萬億的情況是這樣這件事情,我需要找到一個解決方案,使其對所有globaly,對於每一個局部視圖刷新,而不是把他們變成所有的onComplete線。 –

+0

查看我的更新。 – Shad