Я пытаюсь изменить мою нумерацию will_pagniate в рельсах.Я хочу, чтобы старая страница исчезла, а новая исчезла.
Вот соответствующая часть моего контроллера:
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>
И соответствующая часть application.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, а затем нетисчезает и страница обновляется нормально.У меня работает ajax до того, как я попытался добавить Effect.Fade и Effect.Appear.
Это правильный путь?Должен ли я вместо этого поместить эффекты в контроллер?