11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'aimerai pouvoir ajouter des méthodes customisées a l'objet Element de la mootools.

html :
<h3 id="handler">Handler</h3>
<div id="impl">
	Lorem ipsum
</div>

CSS :
#impl{border:1px solid #669934; background:#ddff67; width:400px; padding:30px; margin:10px;}


Javascript :
Element.prototype.resize = function(x,y){
	this.morph({width:x,height:y})
}

$('handler').addEvent('click' , function(e){
	$('impl').resize(200,200)
})

Malheureusement ce code ne fonctionne pas sous IE (Gecko et Webkit l'assimile sans problème).
Biensur j'ai envie de dire "IE de merde" Smiley langue , mais je pense que cela viens plus du fait que mon approche n'est pas correct.
Je suis un peu maladroit en JS natif car j'ai commencé à le pratiquer à travers la mootools (et dailleur je regrette d'avoir tant de lacune en natif).

Je viens à peine de comprendre comment fonctionne les objets Javascipt avec le système de prototype.
Ai-je le droit de procéder ainsi dans le cadre de la mootools ?
Modifié par Citron.mecanik (22 Sep 2008 - 15:38)
Salut,

ie ne reconnais pas Element comme un objet de base de javascript comme le sont Array ou Number. Donc tu ne peux pas l'étendre avec prototype.

Une des grosse fonction de Mootools c'est justement de pouvoir faire ça.

Je n'ai pas essayé car je travaille pas beaucoup avec Mootools mais ce doit être comme ça :

Element.extend({
   resize : function(x,y)
      this.morph({width:x,height:y})
   }
});
a écrit :
Une des grosse fonction de Mootools c'est justement de pouvoir faire ça.

Je n'avais pas assez regardé la partie 'Class' de la doc Smiley confused

Dans mon cas précis cela se réalise avec implement
Element. implement({
   resize : function(x,y)
      this.morph({width:x,height:y})
   }
});

Mais en fait je me demande si je ne vais pas effectivement choisir une solution basé sur extend Smiley cligne

En tout cas merci beaucoup, ta réponse m'a forcé à retourner voir la doc en ligne. Tout était là, alors que j'était en train d'orienter mes recherches vers des solutions un peu foireuses.
Modifié par Citron.mecanik (22 Sep 2008 - 15:28)