Comment faire un highlight avec du texte sur un span


#1

Salut à tous,

J’ai ça dans ma view:

<%= link_to_remote ‘update’, :update => ‘updatespan’,
:url => { :action => ‘edit’,:id=>r.id.to_s } %> some text

ce que je fais pour l’instant:

render :update do |page|
page.replace_html @spanid,
“mise a jour avec succes”
page.visual_effect :highlight, @spanid
end

mais ça me donne l’érreur:
try { } catch (e) { alert(‘RJS error:\n\n’ + e.toString()); alert(’’);
throw e }

je voudrais remplacer le contenu du span pour une seconde et demie par
“mise à jour avec succè” et un effet highlight et ensuite revenir sur
le text original du span, dans ce cas “some text” mais je suis un peu
bloqué comment faire.

Si vous avez une idée,

Merci d’avance

Pat


#2

Le 5 janv. 07 à 02:04, Patrick A. a écrit :

render :update do |page|
“mise à jour avec succè” et un effet highlight et ensuite revenir sur
le text original du span, dans ce cas “some text” mais je suis un peu
bloqué comment faire.

Si vous avez une idée,

A ma connaissance il existe plusieurs moyen de setter une variable js
via rjs mais pas d’en lire sans écrire directement le js, car je ne
crois pas qu’on puisse appeler des variables js ou des propriété
d’object js comme argument via les methods rjs

donc si tu tiens absoluement à utiliser rjs pour ca tu peux faire un
truc du genre:

render :update do |page|
page << “var temp = $(‘mytext’).innerHTML; $(‘mytext’).innerHTML=
‘mise a jour avec succes’;”
page[‘mytext’].visual_effect :highlight
page.delay(1.5) do
page << “$(‘mytext’).innerHTML= temp;”
end
end

Maintenant à mon humble avis c’est très très laid, ca fera froncer
beaucoup de sourcil de voir des détails d’implémentation d’effet
client spécifique se retrouver dans le code d’un controller sur un
serveur sensé être MVC.

IMHO ca mérite de créer son propre effect scriptaculous, c’est très
simple et réutilisable et ca permettrait de faire juste un page
[‘mytext’].visual_effect :transitional_text ‘mise a jour avec succes’
ce qui aurait plus de gueule dans un controller.

Renaud


#3

Salut,
il existe ceci pour rajouter un delai

page.delay(3.0) do
page.visual_effect :highlight, @spanid
end

Sinon il y a une option :delay sur le highlight (cf la doc
scriptaculous)

++
Julien