【问题标题】:Run Javascript/Jquery when partial loads部分加载时运行 Javascript/Jquery
【发布时间】:2013-01-25 17:01:56
【问题描述】:

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

页面加载时不会加载此部分内容...稍后会在使用 AJAX 的按钮单击时加载。

我试过我的 JS

内部:

$(document).ready(function () {

与:

$(function(){

与:

自己

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

时让它运行

【问题讨论】:

  • 您能否发布更多代码,此处不足以确定您的问题。 $(function(){ 应该在动态 javascript 中工作,因为我在几个项目中使用它。我认为是其他原因导致了这个

标签: c# javascript ajax asp.net-mvc asp.net-mvc-4


【解决方案1】:
$(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。

【讨论】:

    【解决方案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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 2016-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多