2010-01-29 13 views
0
render :update do |page| 
    page.visual_effect :highlight, row_id, :duration => 20, :startcolor => "#FFCC33", :restorecolor =>"" 
    page << "alert('hi');" 
end 

Dans le code ci-dessus, j'ai un effet fort qui se produit et dure pendant 20 secondes, après l'effet de surbrillance terminé, je veux avoir une fenêtre d'alerte . Actuellement, l'alerte apparaît immédiatement sans attendre que l'effet de surbrillance soit terminé.Comment dois-je arrivé quelque chose * après * l'effet de surbrillance scriptaculous

+2

Je ne suis pas assez familier avec les rails pour commenter, mais si vous changez le code d'alerte en 'page <<" setTimeout ('alert (\' hi \ ')', 20) "' a-t-il l'effet désiré? – artlung

+0

Cela devrait probablement résoudre le problème – Yaraher

+0

Yup, parfait! Si vous le soumettez comme réponse, je vais le choisir et fermer la question. – Janak

Répondre

2

Cela devrait fonctionner pour vous:

render :update do |page| 
    page.visual_effect :highlight, row_id, :afterfinish => "alert('hi')", :duration => 20, :startcolor => "#FFCC33", :restorecolor =>"" 
end 

Dans le code JavaScript pur, cet effet peut être appliqué comme suit:

$('element_id').highlight({ 
    duration:20, 
    startcolor: "FFCC33", 
    afterFinish:function(){ 
     // do whatever you want 
    } 
})