jquery、asp.net ajax、javascript根本不执行 函数pageLoad(){ var$scrollingDiv=$(“#scrollfix”); $(窗口)。滚动(函数(){ if($(窗口).scrollTop()==$(文档).height()-$(窗口).height()){ __doPostBack('',''); } $scrollingDiv .停止 .animate({“marginTop”:($(window.scrollTop())+-60+“px”},“slow”); }); }

jquery、asp.net ajax、javascript根本不执行 函数pageLoad(){ var$scrollingDiv=$(“#scrollfix”); $(窗口)。滚动(函数(){ if($(窗口).scrollTop()==$(文档).height()-$(窗口).height()){ __doPostBack('',''); } $scrollingDiv .停止 .animate({“marginTop”:($(window.scrollTop())+-60+“px”},“slow”); }); },javascript,jquery,asp.net,ajax,updatepanel,Javascript,Jquery,Asp.net,Ajax,Updatepanel,这段代码根本不执行,我使用pageLoad函数的原因是,在updatepanel部分回发之后,jquery代码无法执行。 但是在使用了这个之后,上面的代码甚至在第一页启动时都不起作用 但是,用于页面加载的代码如下所示,但jquery部分在回发后停止工作: <script type="text/javascript"> function pageLoad() { var $scrollingDiv = $("#scrollfix"); $(win

这段代码根本不执行,我使用pageLoad函数的原因是,在updatepanel部分回发之后,jquery代码无法执行。 但是在使用了这个之后,上面的代码甚至在第一页启动时都不起作用

但是,用于页面加载的代码如下所示,但jquery部分在回发后停止工作:

<script type="text/javascript">
    function pageLoad() {
        var $scrollingDiv = $("#scrollfix");
        $(window).scroll(function () {
            if ($(window).scrollTop() == $(document).height() - $(window).height()) {
                __doPostBack('<%= GetMoreResults.UniqueID %>', '');
            }
            $scrollingDiv
                .stop()
                .animate({ "marginTop": ($(window).scrollTop()) + -60 + "px" }, "slow");
        });
    }
</script>
$(文档).ready(函数(){
$().ready(函数(){
var$scrollingDiv=$(“#scrollfix”);
$(窗口)。滚动(函数(){
if($(窗口).scrollTop()==$(文档).height()-$(窗口).height()){
__doPostBack('','');
}
$scrollingDiv
.停止
.animate({“marginTop”:($(window.scrollTop())+-60+“px”},“slow”);
});
});
});
解决方案?非常感谢

更新#2 这是我当前的代码: 它在页面第一次加载时起作用,但在_doPostBack触发部分回发后不起作用

$(document).ready(function () {
    $().ready(function () {
        var $scrollingDiv = $("#scrollfix");
        $(window).scroll(function () {
            if ($(window).scrollTop() == $(document).height() - $(window).height()) {
                __doPostBack('<%= GetMoreResults.UniqueID %>', '');
            }
            $scrollingDiv
            .stop()
            .animate({ "marginTop": ($(window).scrollTop()) + -60 + "px" }, "slow");
        });
    });
});

window.load=pageLoad();
函数pageLoad(){
var$scrollingDiv=$(“#scrollfix”);
$(窗口)。滚动(函数(){
if($(窗口).scrollTop()==$(文档).height()-$(窗口).height()){
__doPostBack('','');
} 
$scrollingDiv
.停止
.animate({“marginTop”:eval($(window).scrollTop())+-60+“px”},“slow”);
}); 
} 
更新#3 我应该提到,这个页面并不是从page继承的,我已经创建了一个名为BasePage:page的自定义页面类


可能是由于与此相关的原因pageLoad()没有触发?

除非将代码分配给
窗口,否则该代码不会执行。onload
事件:

<script type="text/javascript">
        window.load = pageLoad();
            function pageLoad() { 
                var $scrollingDiv = $("#scrollfix"); 
                $(window).scroll(function () { 
                    if ($(window).scrollTop() == $(document).height() - $(window).height()) { 
                        __doPostBack('<%= GetMoreResults.UniqueID %>', ''); 
                    } 
                    $scrollingDiv 
                    .stop() 
                    .animate({ "marginTop": eval($(window).scrollTop()) + -60 + "px" }, "slow"); 
                }); 
            } 
</script>

我也会考虑用<代码> EVA函数:

window.onload = pageLoad; 
eval($(window).scrollTop() - 60) + "px"
最后,我认为不需要第二个就绪状态函数:

window.onload = pageLoad; 
eval($(window).scrollTop() - 60) + "px"
尝试将.bind()与您的
页面加载一起使用

页面加载:

它也在每次部分回发后调用。它基本上起作用 作为Application.Init和 PageRequestManager.EndRequest

函数pageLoad(){
var$scrollingDiv=$(“#scrollfix”);
$(窗口).bind('scroll',function(){
if($(窗口).scrollTop()==$(文档).height()-$(窗口).height()){
__doPostBack('','');
}
$scrollingDiv
.停止
.animate({“marginTop”:($(window.scrollTop())+-60+“px”},“slow”);
});
}

JavaScript对部分页面回发一无所知;这是一个ASP.NET包装器,围绕返回HTML内容的AJAX表单帖子。如果希望在部分页面回发后调用
pageLoad
,则必须在回发处理程序中注册调用
pageLoad
的客户端脚本。正如@James Johnson所指出的那样,您还需要确保在第一次页面加载时调用该函数。

您是否在任何地方调用了pageLoad()?您可以删除$()。就绪(函数(){更具体地说,什么不起作用,可以在内部发出警报。滚动函数?pageLoad())如果使用ASP.NET ajax,则自动调用。我认为pageLoad()功能由ASP.NET ScriptManager提供,可以在任何位置自动使用。但我会尝试。谢谢。去掉()在pageLoad之后;您正在将一个函数变量分配给另一个,而不是执行一个函数。不,我使用bind和live尝试了相同的操作,但没有执行。嘿,Rick,再次感谢您的回答,我使用pageLoad而不是$(document)。ready(),这让我很困惑。它曾用于其他项目。我将尝试缩小代码范围,检查是否每次都调用pageLoad。结果发现,我确实存在冲突,在其他地方使用pageLoad()。