0

所有示例/答案似乎都显示在页面加载时运行部分的 javascript。

当页面加载时,此部分不会加载...稍后使用 AJAX 单击按钮时会加载它。

我试过我的 JS

里面:

$(document).ready(function () {

和 :

$(function(){

和 :

通过它自己

首先根本不触发。第二和第三似乎在第二页加载时触发。我假设因为我的 js 影响的 div 将存在。那么如何让它在部分加载时运行..

4

2 回答 2

3
$(document).ready(function () {
    ...
});

将在页面加载时触发(更具体地说 $(document).ready 被连接到 document.DOMContentLoaded 或 window.loaded 事件)但是因为您使用 ajax 加载 Partial,所以在加载 Partial 时已经触发了页面加载事件。

如果您使用 jQuery 通过 ajax 加载部分页面,我建议您从

$ajax(...
}).done(function ( data ) {
    yourFunction();
});

或者,如果您使用 AjaxHelper 类(例如使用 razor @Ajax.ActionLink(...)),则使用其 AjaxOption 的 OnSuccess 或 OnComplete 属性来连接您的 javascript 函数。像下面这样的方式:

@Ajax.ActionLink("Load partial", "MyPartialAction", new AjaxOptions
{
    UpdateTargetId="partialContainer",
    OnSuccess="partialLoaded"
}

此代码将从 MyPartialAction 操作返回的 Partial 加载到具有“partialContainer” id 的标记中,并且在加载 Partial 后,您的 JavaScript 函数名为 partialLoaded。

于 2013-01-25T17:14:56.357 回答
2

如果您想让它在部分加载时运行,请在发出部分请求的任何内容的回调中执行此操作。如果此请求发出者是 Jquery,它将类似于以下内容:

$.get(url, function (result) {
    // Do whatever you want here in the success callback.
});

如果您使用 MVC 辅助方法(例如 Ajax.ActionLink)执行某些操作,则可以指定一个 jquery 函数以在响应时调用

@Ajax.ActionLink("NameOfLink", "ControllerAction", new AjaxOptions
{
    HttpMethod = "GET",
    OnSuccess = "javascriptFunction(data)"
})

function javascriptFunction(data) {
    // Do whatever you want
}
于 2013-01-25T17:13:55.143 回答