2015-05-28 2 views
1

Я использую MVC5. Я загружаю изображения из списка, используя Unobtrusive Ajax.ActionLink(). Вот пример кода: -Вызов функции javascript на обратном вызове OnSuccess Ajax.actionlink?

<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

@HasanSavran: Я пытался изменить имя, не помогло. – user1327064

+0

Вы включаете внешний файл js через представление master/normal или через частичное? – Mackan

ответ

0

Попробуйте использовать следующее в отдельном файле js. Поскольку вы используете функции Jquery, вы хотите быть уверенным, что JQuery загружен перед вашим Js-файлом.

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

Вы должны быть в состоянии назвать эту функцию MyNamespace.EnableZoom()

OnSuccess = "MyNamespace.EnableZoom"

Дайте ему попробовать. Удачи.

Смежные вопросы