<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 部分在回发后停止工作:
$(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");
});
});
});
解决方案?非常感谢。
更新#2
这是我当前的代码: 它在页面第一次加载时起作用,但在 __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>
更新#3
我应该提到这个页面没有继承自 Page,我创建了一个名为 BasePage : Page 的自定义页面类。
也许 pageLoad() 由于某些与此相关的原因没有触发?
最佳答案
尝试将 .bind() 与您的 pageLoad
一起使用:
页面加载:
It is also called after every partial postback. It basically functions as a combination of Application.Init and 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");
});
}
关于javascript - jquery、asp.net ajax、javascript 根本不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7998992/