ajax无刷新分页页面过高的问题

duangufei 2014-11-21 01:22:40
问题一:我做了一个无刷新分页的效果,但是因为页面过高,导致点击下一页的时候会跑到页面的顶部,如何让它锁定到当前位置?也就是说点击下一页的时候当前位置保持不变
问题二:移除Id为Result的表格里的行的时候

会产生这种效果(多出来一个li/)

用f12调试的时候可以看到多出来一个/li

应该是没有移除干净,以前用table,现在换成了ul li 那么第一张图片中的内容该怎么写
...全文
237 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
duangufei 2014-11-21
  • 打赏
  • 举报
回复
问题解决了 感谢回答问题的各位 对于问题一的解决方法: 因为我调用用了一个js (jquery.pagination.js)它里面有一个
opts = jQuery.extend({
		items_per_page:10,
		num_display_entries:10,
		current_page:0,
		num_edge_entries:2,
		link_to:"#",
		prev_text:"Prev",
		next_text:"Next",
		ellipse_text:"...",
		prev_show_always:true,
		next_show_always:true,
		renderer:"defaultRenderer",
		callback:function(){return false;}
	},opts||{});
方法 。 其中的link_to就是翻页时所调用的页面连接,只需要把#改为javascript:void(0)就行了 对于问题二:我是这样写的
 $("#Resulta :gt(0)").remove();
其实也没有什么改变,究其原因是css的问题 li有一个样式是这样写的 height:30 px 其实应该改为line-height:30px ; 但是f12的时候还是多出来一个</li> 这个以后在慢慢研究。
  • 打赏
  • 举报
回复
比如说,如果在你的 $("#Result") 上动态添加一个属性来记录滚动条位置,然后才发起 ajax 调用,然后成功回调时再重新取得这个滚动条位置并设置滚动条,这在极个别简单情况下也是成功的。一开始可以这样实现。 这样做显然是可能有bug的,当同时有多个ajax动作去请求刷新数据时,这个方式的记录的属性值就乱了。不如上述复杂方式准确。
  • 打赏
  • 举报
回复
请求前,获取当前滚动条位置,然后作为回调参数传过去。 你的服务器端要能够支持,能够把这个参数将来在随着返回值而返回来。 在ajax回调方法中,把函数返回值跟滚动条位置参数分别解析出来,当重新清理并添加数据后,你重新设置滚动条位置。这样的效果就是滚动条回到原来位置。 你可以把这两个功能做成两个通用的函数,反复调用。同时你的服务程序要设计成支持这种参数“原样返回”。
qqdd2716 2014-11-21
  • 打赏
  • 举报
回复
第二个问题有可能是li没有结束标签~检查一下标签是不是都成对~ 试一下 $('#Result').html(''); 或者$('#Result').find('li').remove();
Im_Sorry 2014-11-21
  • 打赏
  • 举报
回复
引用 12 楼 duangufei 的回复:
求救
$("#Result li").remove() 这样不行? 如果不行 $("#Result li:gt(0)").remove() 这样试试!
天下如山 2014-11-21
  • 打赏
  • 举报
回复
1、锚点 咋就没地方加呢? 加在Pagination这不行么? 2、是你说从第二行开始移除的 那你想怎么移除呢?
duangufei 2014-11-21
  • 打赏
  • 举报
回复
求救
duangufei 2014-11-21
  • 打赏
  • 举报
回复
引用 10 楼 Z65443344 的回复:
[quote=引用 7 楼 duangufei 的回复:] [quote=引用 6 楼 Z65443344 的回复:] 其实有个简单的办法,你不敢每页少显示一些内容,不要让它超出页面范围?
试了一下 每页只有2条数据的时候才能这样,谁受得了[/quote] 你每条数据占半个屏幕的高度??????[/quote] 不是 是页面的上半部分有别的东西,下半部分才是数据绑定的东西
於黾 2014-11-21
  • 打赏
  • 举报
回复
引用 7 楼 duangufei 的回复:
[quote=引用 6 楼 Z65443344 的回复:] 其实有个简单的办法,你不敢每页少显示一些内容,不要让它超出页面范围?
试了一下 每页只有2条数据的时候才能这样,谁受得了[/quote] 你每条数据占半个屏幕的高度??????
duangufei 2014-11-21
  • 打赏
  • 举报
回复
引用 8 楼 duangufei 的回复:
[quote=引用 2 楼 sibiyellow 的回复:] 1、使用锚点。 2、try:$("#Result li:first").nextAll().remove()
第二个问题解决了 ,多了一个try:[/quote] 不对不对,这样是多了一整个<li></li> 所以还是没有解决
duangufei 2014-11-21
  • 打赏
  • 举报
回复
引用 2 楼 sibiyellow 的回复:
1、使用锚点。 2、try:$("#Result li:first").nextAll().remove()
第二个问题解决了 ,多了一个try:
duangufei 2014-11-21
  • 打赏
  • 举报
回复
引用 6 楼 Z65443344 的回复:
其实有个简单的办法,你不敢每页少显示一些内容,不要让它超出页面范围?
试了一下 每页只有2条数据的时候才能这样,谁受得了
於黾 2014-11-21
  • 打赏
  • 举报
回复
其实有个简单的办法,你不敢每页少显示一些内容,不要让它超出页面范围?
duangufei 2014-11-21
  • 打赏
  • 举报
回复
引用 3 楼 hou306010849 的回复:
[quote=引用 1 楼 duangufei 的回复:] 没有人么
拼接的时候多拼接了一个li 把,仔细检查下![/quote] 可以肯定是没有 就是jq那块的问题 可惜本人对jq一窍不通啊
duangufei 2014-11-21
  • 打赏
  • 举报
回复
引用 2 楼 sibiyellow 的回复:
1、使用锚点。
2、try:$("#Result li:first").nextAll().remove()

问题一:
这下一页和上一页都是生成的,没处使用锚点啊
问题二:好像没有效果啊
Im_Sorry 2014-11-21
  • 打赏
  • 举报
回复
引用 1 楼 duangufei 的回复:
没有人么
拼接的时候多拼接了一个li 把,仔细检查下!
天下如山 2014-11-21
  • 打赏
  • 举报
回复
1、使用锚点。 2、try:$("#Result li:first").nextAll().remove()
duangufei 2014-11-21
  • 打赏
  • 举报
回复
没有人么

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧