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