【问题标题】:using Document.ready with update panel使用带有更新面板的 Document.ready
【发布时间】:2013-01-28 06:38:03
【问题描述】:

我有 J Query 事件分配在 document.ready,我的页面也有 update panel。当页面中发生 partial post back 时,我会丢失 J query events. document.readyupdate panel 之间是否存在冲突?我该如何解决?

【问题讨论】:

  • @Aristos,现在请检查标题。它有效吗

标签: jquery asp.net updatepanel document-ready


【解决方案1】:

document.ready 函数在回调后将不起作用..您需要在每次回发后调用该函数.. 有多种解决方案

1) 使用 pageLoad 代替 document.ready

 function pageLoad() {
 //execute code
 }

2) 或者你可以在回调后注册你的函数

 ScriptManager.RegisterClientScriptBlock(Me.Page, GetType(String), "function",      "try{function();}catch(err){}", True)

3) 或者你可以在

中调用你的函数
    function page_EndRequest(sender, args) {
     // your Code
     }

【讨论】:

  • 这在从后退按钮导航时不起作用,因为内容将从缓存中提供,服务器不会触发这些处理程序。
【解决方案2】:

Update PanelJ Query 经常会阻止彼此一起工作。在您的情况下,解决方案是您需要在从更新面板部分回帖后rebind your J Query event

试试这个

var prmInstance = Sys.WebForms.PageRequestManager.getInstance();

    prmInstance.add_beginRequest(function () {        
        //re-bind jquery events 
    });

    prmInstance.add_endRequest(function () {
        //re-bind jquery events 
    });

【讨论】:

    【解决方案3】:

    将你的 document.ready 函数替换到下面

    Sys.Application.add_load(clickUpdate); //It work as document.ready function
    
    function clickUpdate() {
    
    /*Do stuff*/
    
    }
    

    【讨论】:

      猜你喜欢
      • 2011-03-25
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-23
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多