作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为了通过 AJAX 对项目进行分页。
我试图在 AJAX“分页” View 中保持复选框选中状态。也就是说,在一个 View 中,它显示了一个项目列表(出于性能原因 - 因为这些项目可能很多)实现了分页(每页 10 个项目),因此输出如下:
# * `[ ]` represents a check box
# * `[X]` represents a checked check box
# * `Item<N>` represents a check box label
# * `Previous`, `Next`, `1`, `2`, `...` are WillPaginate links to switch
# between pages
[X] Item1
[X] Item2
[X] Item3
[ ] Item4
[ ] ...
[ ] Item10
← Previous 1 2 3 Next →
通常,当用户点击 Next
链接时,它会加载并呈现(通过执行 AJAX HTTP GET 请求)下一页,包括接下来的 10 个项目。 我的问题是,如果用户检查某些项目(比如 Item1
、Item2
、Item3
的状态为已检查) 然后他/她切换页面,那些选中的项目状态丢失了。也就是说,当用户返回到上一页时,Item1
、Item2
、Item3
不再被检查(并且应该被检查因为我没有实现任何措施来保持它们的状态)。
我想在切换页面时保持检查状态。 我该怎么做?您建议使用什么方法(也许是 Ruby on Rails session
...)?
最佳答案
您可以在离开时将页面的整个 DOM 树分配给一个数组项(以页码为键)。然后,当(如果)您的访问者返回该页面时,您可以直接从数组中将其加载回 DOM,而无需 AJAX 请求,保持您的复选框不变,并使页面更加快速。
只要您的复选框的 onclick 监听器位于树上比您要换出的内容更靠上的 DOM 节点上,这就可以正常工作。如果这没有意义,请查看事件冒泡——它很厉害! :)
关于javascript - 如何在 AJAX "paginated" View 中保持复选框选中状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7653988/
我是一名优秀的程序员,十分优秀!