在Ajax.actionlink的OnSuccess回调上调用javascript函数



我使用MVC5。我正在使用不显眼的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>
我调用一个函数'enableZoom'。只要它位于视图页面的script标记内,它就可以工作。但是当我将enableZoom函数移动到custom.js文件时,OnSuccess回调无法找到或调用它。
<script>
    function enableZoom() {
        $("#divImage").zoom({
            on: "grab",
            magnify: "1"
        });
    }
</script>

PS:我的custom.js文件正在成功加载(通过firebug确认),custom.js也有其他功能,并且正在工作。如有任何线索/帮助将不胜感激。

尝试在单独的js文件中使用以下代码。因为你正在使用Jquery函数,你需要确保Jquery在你的Js文件之前被加载。

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

你应该能够通过 mynamespaces . enablezoom ()

调用这个函数

OnSuccess = "MyNamespace。"EnableZoom "

试一试。好运。

最新更新