我已经在我的Rails应用程序中使用example code for the will_paginate plugin实现了一些AJAX分页 - 这显然是使用Prototype。
但是如果我想切换到使用jQuery进行未来的添加,我真的不想让Prototype的东西也存在(是的,我知道it's possible)。多年来我没有写过一些JavaScript,更不用说看看Prototype和jQuery ......所以我可以使用一些帮助将这个位转换为jQuery兼容的语法:
document.observe("dom:loaded", function() {
// the element in which we will observe all clicks and capture
// ones originating from pagination links
var container = $(document.body)
if (container) {
var img = new Image
img.src = '/images/spinner.gif'
function createSpinner() {
return new Element('img', { src: img.src, 'class': 'spinner' })
}
container.observe('click', function(e) {
var el = e.element()
if (el.match('.pagination a')) {
el.up('.pagination').insert(createSpinner())
new Ajax.Request(el.href, { method: 'get' })
e.stop()
}
})
}
})
提前致谢!
编辑: Nick Craver的答案让我有90%的方式,所以我只需要拿起足够的jQuery来替换HTML元素。取代尼克$.get($(this).attr("href"));
所在的那一行,放上这一行:
$.get(this.href, null, function(data){ $(this).html(data); }, 'html');
答案 0 :(得分:1)
您可以将jQuery中的这一点缩短为:
$(function() {
$('.pagination a').live('click', function(e) {
$(this).parent('.pagination')
.append("<img src='/images/spinner.gif' class='spinner' />");
$.get($(this).attr("href"));
return false;
});
});
我不完全确定new Ajax.Request(el.href, { method: 'get' })
,这是一个请求的脚本吗?看起来回归后内容没有做任何事情。