11488 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je souhaite utiliser la fonction Toggle de Scriptaculous pour un slide, mais en même temps j'utilise un script de ToolTips qui lui-même utilise la librairie Mootools. Or, la fonction Toggle est elle aussi présente dans Mootools (mais je ne m'en sert pas).

La question est la suivante : devrais-je utiliser uniquement Mootools ? Si oui, je souhaiterai l'utiliser dans un environnement "non-domReady", c'est à dire avec `onclick="blabla"` (oui je sais c'est pas bien mais j'en ai vraiement besoin). Sinon, comment puis-je concilier les deux librairies sans conflits ?

Merci d'avance pour vos réponses,
wizardman.
Modifié par wizardman (11 Apr 2008 - 19:59)
a écrit :
La question est la suivante : devrais-je utiliser uniquement Mootools ?


Oui!

Ou bien Prototype mais pas les deux. Vue la qualité de la doc de Mootools je crois que tu ne devrais pas avoir de mal a faire un slide...

Par contre je ne comprend pas pourquoi tu veux utiliser cela dans un environnement "non-onDomReady" avec des onclicks, justement l'avantage de ce genre de bibliothèque étant la gestion des événements DOM 2 simplifié et le onDomReady. Pourrais tu expliquer pourquoi?
Modifié par matmat (13 Apr 2008 - 00:21)
Merci de ta réponse.
Mais puis-je utiliser un slide Mootools via `onlick="slide()"` par exemple ou je ne peut le faire qu'en "domReady" ?
oui tu peux tout à fait, les bibliothèques sont là pour compiler des nouvelles fonctions non pour enlever celles existantes Smiley cligne , mais je ne comprend toujours pas pourquoi tu ne veux pas utiliser les Element.Event si pratiques de Mootools.
Ben je sais pas je trouve que c'est plus chiant de déclarer tes slides au début d'un script que de les faire "à chaud" avec onclick Smiley smile
Après avoir lu la doc, j'ai tenté de le faire avec onclick :
- J'ai mis ce code dans mon script js de fonctions diverses que je load après celui de mootools :
var mySlider = new Fx.Slide('affiche', {duration: 500});


- Sur la page contenant ma div #affiche, je mets un lien <a href="#" onclick="mySlider.toggle()">Lien</a>

Mais lors du clic, j'ai les erreurs suivantes avec Firebug :
a écrit :
- this.element has no properties
[Break on this error] this.wrapper = new Element('div', {'styles': $extend(this.element.getStyles('m...
mootools.js (line 4457)

- mySlider has no properties


Même en rajoutant un return false; dans le onclick du lien ça ne fonctionne pas Smiley decu

Des idées ?
Merci.
Modérateur
Salut, Smiley smile

Quelquepart, ça mérite la même remarque que pour ce sujet Smiley cligne :

La multiplication des bibliothèques est à éviter; il serait préférable de se pencher un peu plus sur le fonctionnement d'une d'entre elle et de se servir pleinement de ses possibilités car celles-ci suffisent à faire ce que tu souhaites.

a écrit :
Ben je sais pas je trouve que c'est plus chiant de déclarer tes slides au début d'un script que de les faire "à chaud" avec onclick Smiley smile
C'est surtout dans un soucis de maintenance qu'il vaut mieux mettre tout le JS dans un fichier externe. Ainsi, tu n'as plus, quelques mois après, à te rappeler d'où se trouvent tes appels (ex.: sur 15 pages différentes) puisque tout se trouve au même endroit.

Par ailleurs, il y a une différence entre un onclick et un addEvent de Mootools :

Tu peux ajouter autant de addEvent que tu veux sur l'élément (puisque basé sur DOM2) alors que le onclick empêche l'ajout d'un nouveau gestionnaire d'événement au clic sur le même élément... Disons que le addEvent t'empêche d'éventuels conflits avec de futurs scripts... Smiley murf

a écrit :
Des idées ?
Avec la page (ou, à défaut, le code), peut-être... Smiley smile
Merci de ta réponse Smiley cligne
Tout compte fait c'est vrai que ce doit être mieux de tout centraliser... j'essayerai Smiley smile

Si ça ne fonctionne toujours pas pour une raison ou une autre, je vous en ferai part !
Merci encore Smiley cligne
Modifié par wizardman (14 Apr 2008 - 13:09)
a écrit :
- J'ai mis ce code dans mon script js de fonctions diverses que je load après celui de mootools :


Est-ce que ton élément avec l'id 'affiche' existe au moment ou tu load le script. C'est l'avantage du domReady en fait. Ca permet d'etre sur que tous tes éléments existent au moment ou tu y fais appel.
Oui la div existait bien.
Je me suis mis à domReady finalement, ça m'évitera des problèmes puis MooTools m'a l'air pas mal comme framework Smiley cligne

Merci à vous.