Javascript iscroll jquery在部分回发时中断

Javascript iscroll jquery在部分回发时中断,javascript,jquery,ajax,Javascript,Jquery,Ajax,我发现一个名为iScroll的脚本可以在iPad设备上用作垂直列表的1位数滚动机制。 它所需要的只是: <script type="text/javascript" src="http://cubiq.org/dropbox/iscroll4/src/iscroll.js"></script> 当页面第一次加载时,它可以正常工作,但是使用它的列表位于asp.net upadate面板中,回传时滚动会中断 当触发列表刷新的事件发生时,我已尝试使用c#中的register

我发现一个名为iScroll的脚本可以在iPad设备上用作垂直列表的1位数滚动机制。 它所需要的只是:

<script type="text/javascript" src="http://cubiq.org/dropbox/iscroll4/src/iscroll.js"></script> 
当页面第一次加载时,它可以正常工作,但是使用它的列表位于asp.net upadate面板中,回传时滚动会中断

当触发列表刷新的事件发生时,我已尝试使用c#中的registerstartupscript:

    public string ipadScript()
    {
        StringBuilder sb = new StringBuilder();
        sb.Append("var myScroll;" + Environment.NewLine);
        sb.Append("function loaded() {" + Environment.NewLine);
        sb.Append("alert('h');" + Environment.NewLine);
        sb.Append("myScroll = new iScroll('wrapper');" + Environment.NewLine);
        sb.Append("}" + Environment.NewLine);

        sb.Append("document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);" + Environment.NewLine);
        sb.Append("document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 200); }, false);" + Environment.NewLine);
        return sb.ToString();
    }


ClientScriptManager cs = Page.ClientScript;
cs.RegisterClientScriptBlock(this.GetType(), "ipadKey", ipadScript(), true);
但这似乎也不起作用。我甚至没有收到我在脚本中添加的用于检查回发的“警报”。希望有人能帮忙

解决了

function pageLoad(sender, args) {
    if (args.get_isPartialLoad()) {
 myScroll = new iScroll('wrapper');
}
}

这仅适用于asp.net更新面板

更新面板后应调用刷新方法
myScroll.refresh()
。 客户端:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);

function endRequestHandler(sender, eventArgs)
{
   myScroll.refresh();
} 

ClientScriptManager
将只注册代码,但由于
元素不在更新面板中,因此它永远不会被添加,即使它被添加也不会执行

您需要注册客户端事件处理程序来重新初始化列表:

$(document).ready(function() {
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
});
var endRequestHandler = function() { myScroll.refresh(); };

感谢您的回复,但我不明白,所以当您说我需要注册客户端事件处理程序时,我实际上不需要在asp.net代码中执行任何操作?只需在我的原始脚本旁边添加你在页面标题中发布的内容?我还必须将js文件添加到站点,而不是从外部url引用它
$(document).ready(function() {
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
});
var endRequestHandler = function() { myScroll.refresh(); };