【发布时间】:2012-11-26 08:32:54
【问题描述】:
我已经创建了这个用于加载数据的 ajax 脚本。
$("#submit").click(function(e){
e.preventDefault()
var loading = "<img src='/images/loading.gif' alt='Loading...' />";
var scrolltop=$('#scrollbox').attr('scrollTop');
var scrollheight=$('#scrollbox').attr('scrollHeight');
var windowheight=$('#scrollbox').attr('clientHeight');
// var post = $(this).attr("name") + "=" + $(this).val();
var form_data = $('#search_form').serialize();// + "&" + post ;
var scrolloffset=20;
$('#search').html(loading);
$.post("dosearch.php",form_data,function(newitems) {
$('#content').append(newitems);
});
if(scrolltop>=(scrollheight-(windowheight+scrolloffset))){
$.post("dosearch.php",form_data,function(newitems) {
$('#content').append(newitems);
});
}
});
});
此脚本将获取表单数据并将它们序列化并将它们发布到dosearch.php,之后 dosearch 将发布我们搜索 Limited 0,6 的数据。当滚动条到达结果 div 的底部时,我想获取更多内容,因此我创建了这个函数,它将再次获取我们的表单数据和结果 div 中的 div 数量......然后使用这个 div 结果以防万一限制 $number,6。
function scroll_result(form_data){
var loading = "<img src='/images/loading.gif' alt='Loading...' />";
var scrolltop=$('#scrollbox').attr('scrollTop');
var scrollheight=$('#scrollbox').attr('scrollHeight');
var windowheight=$('#scrollbox').attr('clientHeight');
var scrolloffset=20;
var divnumber = $('#content').children().size();
var form_data = form_data + "&size=" + divnumber;
if(scrolltop>=(scrollheight-(windowheight+scrolloffset)))
{
//fetch new items
$.post('dosearch.php', form_data, function(newitems){
$('#content').append(newitems);
});
}
setTimeout('scroll_result(form_data)', 1500);
}
这个功能不起作用,我需要一些帮助
提前谢谢...
【问题讨论】:
-
你的滚动监听器在哪里?
-
myscroll 监听器是这个 div #scrollbox 当我到达这个 div 的底部时 if(scrolltop>=(scrollheight-(windowheight+scrolloffset))){ 这将执行并且必须发生一些我不知道的事情必须发生什么 :) 也许一些重复功能来重复这个过程?
-
您是否遇到任何错误?当你到达 div 的底部时,新的 ajax 会再次触发吗? scrollresult 函数有什么作用?
-
没有错误,但也没有功能。我只是改进了我的代码,如何发布?发布为评论或答案?
-
滚动结果没有做任何事情..我只是设计滚动结果来在我到达这个 div 的底部时启动这个 ajax。
标签: javascript jquery ajax