2015-05-28 65 views
1

我正在使用MVC5。我使用Unobtrusive Ajax.ActionLink()從列表中加載圖像。以下是示例代碼: -在Ajax.actionlink的OnSuccess回調中調用javascript函數?

<ul class="list-group list-unstyled lists"> 
@foreach (var item in Model) 
{ 
<li> 
@Ajax.ActionLink(@item.Name, 
     @item.Action, 
     "Home", 
     new {id = @item.Id }, 
     new AjaxOptions 
     { 
      UpdateTargetId = "divImage", 
      InsertionMode = InsertionMode.Replace, 
      HttpMethod = "GET", 
      OnSuccess = "enableZoom" 
     }) 
</li> 
} 
</ul> 

OnSuccess回調我調用一個函數'enableZoom'。只要它位於視圖頁面的腳本標記內,它就會工作。但是,當我將enableZoom函數移動到custom.js文件時,OnSuccess回調無法找到或調用它。

<script> 
    function enableZoom() { 
     $("#divImage").zoom({ 
      on: "grab", 
      magnify: "1" 
     }); 
    } 
</script> 

PS:我的custom.js文件加載成功(通過螢火蟲確認),custom.js也有其他功能,並且正在工作。任何線索/幫助將不勝感激?

+0

我會嘗試將函數的名稱更改爲獨特的東西並嘗試調用它。 enableZoom可能會在其他地方定義... –

+0

@HananSavran:我試圖通過更改名稱,沒有nt幫助。 – user1327064

+0

你是否通過主/普通視圖或部分?包含外部js文件? – Mackan

回答

0

嘗試在單獨的js文件中使用以下內容。由於您使用的是Jquery函數,因此您需要確保Jquery在您的Js文件之前加載。

MyNamespace = {} || MyNamespace(); 
MyNamespace.EnableZoom = function() { 
    $("#divImage").zoom({ 
      on: "grab", 
      magnify: "1" 
     }); 
}; 

您應該能夠通過MyNamespace.EnableZoom()調用此函數

的onSuccess = 「MyNamespace.EnableZoom」

試試看吧。祝你好運。