我想在rails中調整我的will_pagniate分頁。我想有舊的頁面淡出,並在新的褪色will_paginate褪色的阿賈克斯
這裏是我的控制器的相關部分:
respond_to do |format|
format.html # new.html.erb
format.js {
render :update do |page|
page.replace 'page', :partial => 'cur_page'
end
}
format.xml { render :xml => @branch }
end
上述部分:
<div id="page">
<%= will_paginate %>
<div id="posts">
<%= render @posts %>
</div>
<%= will_paginate %>
</div>
及相關部分應用程序.js:
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())
target = $('posts')
new Effect.fade(target, { duration: 0.3, afterFinish: function()
{
new Ajax.Request(el.href,
{
method: 'get',
onSuccess: function(){ new Effect.Appear(target, {duration:0.3})}
})
}})
e.stop()
}
})
}
})
該腳本似乎在該行中被殺害,
new Effect.fade(target, { duration: 0.3, afterFinish: function()
,因爲我看到了spinner.gif開始,然後不褪色和頁面通常刷新。在嘗試添加Effect.Fade和Effect.Appear之前,我已經完成了ajax的工作。
這是正確的方式去做這件事嗎?我應該把效果放在控制器中嗎?
不幸的是,引入了一個奇怪的效果,至少對我來說無論如何。Ajax頁面加載,然後淡出,然後淡入。 – Noz 2012-07-11 17:00:56