<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>
此代码根本不执行,我使用pageLoad函数的原因是因为jquery代码在updatepanel部分回发后无法执行。 但是在使用这个之后,上面的代码都没有在第一页启动时起作用。
但是,用于处理页面加载的代码是低于但是jquery部分STOPPED在回发后工作:
$(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");
});
});
});
解决方案?非常感谢。
这是我目前的代码: 它在第一次加载页面时起作用,但在__doPostBack的部分回发触发后不起作用。
<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>
我应该提到这个页面没有从Page继承,我创建了一个名为BasePage的自定义页面类:Page。
也许pageLoad()因为某些原因而无法触发?
答案 0 :(得分:2)
尝试将.bind()与pageLoad
:
<强>页面加载:强>
每次部分回发后也会调用它。它基本上起作用 作为Application.Init和。的组合 PageRequestManager.EndRequest。
function pageLoad() {
var $scrollingDiv = $("#scrollfix");
$(window).bind('scroll', function() {
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
__doPostBack('<%= GetMoreResults.UniqueID %>', '');
}
$scrollingDiv
.stop()
.animate({ "marginTop": ($(window).scrollTop()) + -60 + "px" }, "slow");
});
}
答案 1 :(得分:1)
除非您将代码分配给window.onload
事件,否则该代码不会执行:
window.onload = pageLoad;
我还会考虑使用eval
函数包装上边距的计算:
eval($(window).scrollTop() - 60) + "px"
最后,我认为不需要第二个就绪状态函数:
$().ready(function () {
答案 2 :(得分:0)
JavaScript对部分页面回发一无所知;这是一个围绕AJAX表单帖子的ASP.NET包装器,它返回HTML内容。如果您希望在部分页面回发后调用pageLoad
,则必须在回发处理程序中注册调用pageLoad
的客户端脚本。正如@James Johnson指出的那样,你还需要确保在第一页加载时调用该函数。