代码之家  ›  专栏  ›  技术社区  ›  Ayo

$(document).ready in ascx page after ajax回调

  •  5
  • Ayo  · 技术社区  · 16 年前

    这里的设置有点问题,我有一个列表 .ascx 文件和它们都在控制器本身的计算方面执行不同的任务。所以我的 .aspx 我点击页面 Ajax.ActionLink() 这将使 ASCX 基于我单击的项目的文件。在那 ASCX 是否有1-3个事件会触发其中2个事件 onclick 事件和1是 onload . 这个 点击 事件更容易处理,因为我可以在控件事件中直接硬编码 onclick="$("#toggleMe3").slideToggle("slow");" 以及 重载 必须运行时 ASCX 是加载的,我在一个 $(document).ready(function(){}); 打电话,这在 ASPX 但一旦我尝试将其添加到 ASPX 页面没有加载,它的理想情况是这样的,但我不知道为什么。事实上,如果我直接插入到 ASCX 页面只有硬编码到控件的事件中,它们才起作用,至少有一些是这样的;页面 重载 onprerender 不要开枪。

    3 回复  |  直到 14 年前
        1
  •  1
  •   Ghena    14 年前

    在$(document).ready中指定的部分回发脚本未执行之后,我遇到了同样的问题。我在这里找到了解决办法 MSDN - PageRequestManager Class

    看起来添加如下脚本可以解决问题

    <script type="text/javascript">
      Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myReadyFunction);
    </script>
    
        2
  •  1
  •   Michael DeLorenzo    16 年前

    我已经成功地使用了$(document),准备好了通过xhr加载的部分。您通过XHR加载的视图是否引发了javascript异常?还是包含格式错误的HTML?

    我通常在部分的底部有我的$(document).ready方法,我通过Ajax加载它,比如…

    <script type="text/javascript">
    $(document).ready(function(){ callMyFunction(); });
    </script>
    
        3
  •  1
  •   Chris Brandsma    16 年前

    我很难理解你的问题……但现在明白了。

    如果使用Ajax调用加载日期,则不会触发$(document.ready()事件,因为该页已加载。您现在正在加载更多数据。

    如果您已经知道控件将执行什么操作,请预加载JavaScript,但不要使用Click事件处理程序进行绑定,而是使用活动处理程序。

    所以

    $("#myControl").click(....);
    

    变成

     $("#myControl").live("click", ....);
    

    对不起,如果这不是你要找的。